11
回答
String字符串连接
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

写了这么个代码,已经十几分钟,还没出来结果,急啊!

public static void main(String[] args) {
	connStr();
}
public static void connStr(){
	String s1 = new String();
	long start = new Date().getTime();
	for(int i = 0; i< 1000000; i++){
		s1 += i;
	}
	long end = new Date().getTime();
	System.out.println(end - start);
		
	StringBuffer s2 = new StringBuffer();
	start = new Date().getTime();
	for(int i = 0; i< 1000000; i++){
		s2.append(i);
	}
	end = new Date().getTime();
	System.out.println(end - start);
		
	StringBuilder s3 = new StringBuilder();
	start = new Date().getTime();
	for(int i = 0; i< 1000000; i++){
		s3.append(i);
	}
	end = new Date().getTime();
	System.out.println(end - start);
}
<无标签>
举报
共有11个答案 最后回答: 5年前

引用来自“震秦”的答案

不至于吧? 需要十几分钟?
1个小时了,还没出来。。。。会不会字符串过长了???

 说StringBuilder比StringBuffer在单线程好因为不需要同步锁。但是一直的疑问,JVM不是会做逃逸分析吗?

String s1 = new String();

for(int i = 0; i< 1000000; i++){

    s1 += i;

}

这个循环执行会很慢;i和s1类型不匹配,需要做转换。

你明不明白 
for(int i = 0; i< 1000000; i++){
08         s1 += i;


}

这里的意思,看看think in java 4 里面有你要的答案!

--- 共有 1 条评论 ---
只会百度的程序员我不知道你说的是哪个意思。。。。我就是来试试String来连接到底有多慢,我知道i要转String,但我只是要看它有多慢,i产生的影响我不关注。就是玩玩,不是研究。。。能不能把你说的那个意思跟我说说,感兴趣! 5年前 回复
顶部