以下为字符串+的示例 :
public void test(){
String str = "";
for(int i=0;i<100;i++){
str +=i;
}
}
反编译后(jad反编译工具):
public void test()
{
String str = "";
for(int i = 0; i < 100; i++)
str = (new StringBuilder()).append(str).append(i).toString();
}
可见java编译时把+ 替换为StringBuilder实现。
但存在问题,由于循环所以构建了100个StringBuilder对象。
改正为:
public void test(){
String str = "";
StringBuilder stringBuilder = new StringBuilder();
for(int i=0;i<100;i++){
stringBuilder.append(i);
}
str = stringBuilder.toString();
}
使用一个StringBuilder即可。
建议:多次字符串+操作的时候,使用StringBuilder 替代。