java StringBuffer与String比较那个更快?字符串相加实例代码介绍。怎么提高性能。大家都知道StringBuffer的性能比String高,速度也很快。正好学到了到这里,现在做一个实验。StringBuffer与String循环的次数比书中的多,如果你电脑配置不是很好,那么结果会更加明显。结果是40922ms与0ms的差距。
public void String2StringBuffer(){
String str = “tr”;
long start1 = System.currentTimeMillis();
System.out.println(start1);
for(int i = 0 ;i<80000; i++)
str = str + “-tr”;
System.out.println(System.currentTimeMillis());
System.out.println(System.currentTimeMillis() – start1);
StringBuffer sb = new StringBuffer(“sb”);
long start2 = System.currentTimeMillis();
System.out.println(start2);
for(int j = 0 ; j< 80000 ;j++)
sb.append(“-sb”);
System.out.println(System.currentTimeMillis());
System.out.println(System.currentTimeMillis() – start2);
/* System.out.println();
1352090136281
1352090177203
40922
1352090177203
1352090177203
0 */
}
字符串String相加也有不同的方法。试试实例:又是0ms与15ms的区别。
public void String2String(){
String str1,str2; long start1 = System.currentTimeMillis(); for(int i=0;i<=10000;i++) str1 = "hello"+"world"+"ufida"; System.out.println(System.currentTimeMillis()-start1); long start2 = System.currentTimeMillis(); for(int i =0;i<=10000;i++){ str2 = "hello"; str2+="world"; str2+="ufida"; } System.out.println(System.currentTimeMillis()-start2); /*System.out.println(); 0 15 */ }结果:的确是快了15ms,但是循环了100W次,因此这个性能提升不是很大。
public void StringBuffer2StringBuffer(){ StringBuffer sb1 = new StringBuffer(); long start1 = System.currentTimeMillis(); for(int i = 0;i<=1000000;i++) sb1.append("sb1"); System.out.println(System.currentTimeMillis()-start1); StringBuffer sb2 = new StringBuffer(3000001); long start2 = System.currentTimeMillis(); for(int i = 0;i<=1000000;i++) sb2.append("sb2"); System.out.println(System.currentTimeMillis()-start2); /*System.out.println(); 78 63 */ } |