//假如转载,请注明出处.谢谢!
//[Java]String和StringBuffer连接字串的效率比较
//连接字串,从1连到50000------------------------------------
public class StringBufferDemo{
public static void main(String args[]){
String str1 = "HelloWorld!" ;
long startTime1 = System.currentTimeMillis() ; // 取得开始时间
for(int i=0;i<50000;i++){
str1 += i ; // 不断修改String的内存引用,性能很低
}
long endTime1 = System.currentTimeMillis() ; // 取得结束的时间
System.out.println("String所花费时间:" + (endTime1-startTime1) +"毫秒") ;
//System.out.println(str1) ;
StringBuffer buf = new StringBuffer() ;
buf.append("HelloWorld!") ;
long startTime2 = System.currentTimeMillis() ; // 取得开始计算之前的时间
for(int i=0;i<50000;i++){
buf.append(i); // StringBuffer可以修改,性能高
}
long endTime2 = System.currentTimeMillis() ; // 取得计算之后的时间
System.out.println("StringBuffer所花费时间:"+(endTime2-startTime2) +"毫秒");
//System.out.println(buf) ;
}
};
/*
程序输出:
String所花费时间:5651毫秒
StringBuffer所花费时间:3毫秒
很容易地看出,因为要频繁修改string的指向,所以效率很低.
所以凡是需要频繁修改字符串内容时,都应使用StringBuffer类完成.
*/