string使用final char[] value数组存储字符串内容,每次修改是return new String返回一个新的字符串,需要重新生成一个字符串对象,申请内存空间,这花了时间,而stringbuilder类的value数组不是final的,是可变的,不需要重新生成新的对象,但是数组扩容其实也是换一个更大的数组罢了
stringbuilder类的append方法是return this,而string类的方法都是return new String
java核心技术卷中有一些提及
https://zhidao.baidu.com/question/56752235.html