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 */ } |