在阿里巴巴开发手册中有这样一条:
【推荐】循环体内,字符串的连接方式,使用 StringBuilder 的 append 方法进行扩展。
说明:反编译出的字节码文件显示每次循环都会 new 出一个 StringBuilder 对象,然后进行 append 操作,最后通过 toString 方法返回 String 对象,造成内存资源浪费。
反例:
String str = "start";
for (int i = 0; i < 100; i++) {
str = str + "hello";
}
我们反编译看一下:
public static void main(String args[])
{
String str = "start";
for(int i = 0; i < 100; i++)
str = (new StringBuilder(String.valueOf(str))).append("hello").toString();
}