String 类是final 类,
例如 String str = "a";
str += "b";
过程是相当于 str 重新指向"ab"对象,而以前的 "a" 对象还是存在,每次连接字符串都会产生对象 碎片,效率低
StringBuffer 也是final类,只是连接字符串的功能用append方法代替了“ + ”,它是在现有的字符串上追加字符串,而不是重新指向新的字符串,它相当于是一个动态的字符数组,初始长度16,当当前字符串的长度达到数组长度上限时会另外申请一定长度的数组,将当前的内容复制到新数组中,新数组的长度默认是当前数组长度的两倍。
|