情况1:
String str = "Good";str = str + " Morning";
在上面的代码中,您将创建3个
String对象。
- “好”它将进入 字符串池 。
- “早晨”也进入 字符串池 。
- 通过合并“ Good”和“ Morning”创建的“ Good Morning”。这个家伙在 堆上 。
注意: 字符串 始终是不可变的 。没有 可变的String之 类的东西。
str仅仅是一个 参考 ,最终指向“早安”。您实际上
不是 在处理
1对象。您有
3不同的
String对象。
情况2:
StringBuffer str = new StringBuffer("Good"); str.append(" Morning");StringBuffer包含字符数组。这是 不
一样的
String。上面的代码将字符添加到现有数组。实际上,
StringBuffer是可变的,其
String表示不是。



