Stringbuffer是动态字符串数组,是可变对象。String是不可变对象。对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去.
String S = "hello";
(a) S.hashCode()
S = "world";
(b)S.hashCode()
a、b两处的值是不一样的,在修改字符串的时候,地址也被修改了。
Stringbuffer SB = new Stringbuffer();
SB不能通过赋值符号对其赋值。
在一开始创建的时候,在内存中会分配内存空间,初始保存一个null值。赋值的时候通过append方法。
SB.append("hello ");
SB.append("wolrd ! ");
与String S = “hello ”+"wolrd ! " ;打印效果一样。
参考文章:http://blog.youkuaiyun.com/yirentianran/article/details/2871417
http://zhidao.baidu.com/question/72360421.html