代码如下:
package zxh.test;
public class CompareTime {
public static void main(String[] args) {
String str = "";
long t1 = System.currentTimeMillis();
for(int i=0 ; i< 20000 ; i++)
str += i;
long t2 = System.currentTimeMillis();
System.out.println("String的+=连接方法耗时为:" + (t2-t1) + "ms");
StringBuffer strBuf = new StringBuffer();
t1 = System.currentTimeMillis();
for(int i=0 ; i< 20000 ; i++)
strBuf.append(i);
t2 = System.currentTimeMillis();
System.out.println("StringBuffer的连接方法耗时为:" + (t2-t1) + "ms");
StringBuilder strBul = new StringBuilder();
t1 = System.currentTimeMillis();
for(int i=0 ; i< 20000 ; i++)
strBul.append(i);
t2 = System.currentTimeMillis();
System.out.println("StringBuilder的连接方法耗时为:" + (t2-t1) + "ms");
}
}
显示结果如下:
String的+=连接方法耗时为:7562ms
StringBuffer的连接方法耗时为:16ms
StringBuilder的连接方法耗时为:0ms
第二次运行如下:
String的+=连接方法耗时为:8266ms
StringBuffer的连接方法耗时为:0ms
StringBuilder的连接方法耗时为:0ms
从上面可以看出,StringBuilder运行最快,StringBuffer次之(线程安全的),String最慢。