java循环与字符串代码优化

java循环与字符串代码优化

ID:8979816

大小:33.50 KB

页数:3页

时间:2018-04-13

java循环与字符串代码优化_第1页
java循环与字符串代码优化_第2页
java循环与字符串代码优化_第3页
资源描述:

《java循环与字符串代码优化》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、Java循环与字符串代码优化  在学习编程的过程中,我觉得不止要获得课本的知识,更多的是通过学习技术知识提高解决问题的能力,这样我们才能走在最前方,更多Java学习,请搜索疯狂Java;  在系统性能优化的时候循环和字符串处理一直是非常值得注意的地方。从心态上我们一定不能把自己的眼界放在十次或者是百次循环的层次上,也不能把自己要处理的字符串当做是有十个二十个字符。每次遇到循环都要假定这个循环是上万次的,每次要处理的字符串的时候一定要告诉自己这个字符串将来有可能是很大的。不要等到数据量真的达到十万、百万的级别之后再采取处理,那样的话成本的消耗就太大

2、了。本文将介绍关于Java代码中循环和字符串的优化方法,希望对读者有用。  关于循环  嵌套for循环中次数多的放在内侧,次数少的放在外侧。众所周知for循环需要定义一个循环变量来遍历每一个需要循环的对象,那么如果循环次数多的循环放在外侧那么无疑将会使得总体的变量增多,效率自然会降低。下面进行代码测试  publicclassTest{  publicstaticvoidmain(String[]args)  {  Longtime2Before=System.nanoTime();  for(inti=0;i<10;i++){  for(int

3、j=0;j<1000000;j++){  }  }  Longtime2After=System.nanoTime();  System.out.println("faster--->"+(time2After-time2Before));  Longtime1Before=System.nanoTime();  for(inti=0;i<1000000;i++){  for(intj=0;j<10;j++){  }  }  Longtime1After=System.nanoTime();  System.out.println("slower

4、--->"+(time1After-time1Before));  }  }  在循环中只做与循环相关的事情,一些不必要的循环不要放到循环当中去做。比如在遍历集合的时候没有必要将取得集合大小放在循环中去做,完全可以放在集合的外边。效果上没区别,性能上差距巨大。  importjava.util.*;  publicclassTest1{  publicstaticvoidmain(String[]args)  {  Listlist=newArrayList();  for(inti=0;i<1000000;i++){  list.add("lu

5、ck"+i);  }  Longtime1Before=System.nanoTime();  for(inti=0;i  //System.out.println(list.get(i));  }  Longtime1After=System.nanoTime();  System.out.println("use.size-->"+(time1After-time1Before));  Longtime2Before=System.nanoTime();  intn=list.size();  for(inti=0;i  //System.o

6、ut.println(list.get(i));  }  Longtime2After=System.nanoTime();  System.out.println("donotuse.size-->"+(time2After-time2Before));  }  }  关于字符串  消除字符串连接,在程序中优先考虑使用StringBuffer或者StringBuilder代替String。一个字符串相当于一个匿名的String对象,如果在程序中拼接两个字符串那么会在内存中定义三个字符串空间。而StringBuffer或者StringBuilde

7、r就不会这么做,而是在原来已有的StringBuffer或者StringBuilder对象中进行修改。测试代码如下  publicclassTest3{  publicstaticvoidmain(String[]args)  {  longtime1Before=System.nanoTime();  Stringstr="";  for(inti=0;i<10000;i++){  str+=i;  }  longtime1After=System.nanoTime();  System.out.println("useString--->"+

8、(time1After-time1Before));  longtime2Before=System.nanoTime();  Stri

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。