运行结果可以看到String类的更改是最耗时的
大概是Stringbuilder,StringBuffer的百倍左右
因为每次都要重新开辟新的地址空间来复制更改指针赋值
StringBuilder是可以变长的String类型,效率很快,但是不能保证一个线程安全
StringBuffer为了保证一个线程安全做了很多的操作.效率相对较快,但比起前者,慢了一倍左右
在JDK5.0版本后新增了这个类
public class demo {
public static void main(String[] args) {
String str="";
StringBuffer sb = new StringBuffer("");
StringBuilder sd = new StringBuilder("");
long begin_time = System.currentTimeMillis();
long end_time;
for (int i = 0; i < 20000; i++) {
str= str+i;
}
end_time = System.currentTimeMillis();
System.out.println("string: "+(end_time-begin_time) );
begin_time = System.currentTimeMillis();
for (int i = 0; i < 20000; i++) {
sb.append(String.valueOf(i));
}
end_time = System.currentTimeMillis();
System.out.println("StringBuffer: "+(end_time-begin_time) );
begin_time = System.currentTimeMillis();
for (int i = 0; i < 20000; i++) {
sd.append(String.valueOf(i));
}
end_time = System.currentTimeMillis();
System.out.println("StringBuilder: "+(end_time-begin_time) );
}
}