[Java]String和StringBuffer连接字串的效率比较

//假如转载,请注明出处.谢谢!
//[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类完成.
*/

发布了15 篇原创文章 · 获赞 1 · 访问量 4138

猜你喜欢

转载自blog.csdn.net/jsqdsq/article/details/78150081