##Diagram to show Java String’s Immutability
通过一系列的图片来说明 Java 中字符串的不可变性(Java String's immutability)。
###1.声明字符串
String s = "abcd";
变量 s 存储着字符串对象的索引。下图中的箭头的意思就是「store reference of」。
###2.将一个字符串变量赋值给另外一个字符串变量
s2 stores the same reference value since it is the same string object.
###3.合并字符串 Concat string
s = s.concat("ef");
现在,s 变量存储的是新创建的字符串对象的引用
###4.总结
一旦一个字符串在内存(栈)上创建,这个字符串将不可改变。我们应该注意到 String 类中的所有方法都不会改变字符串本身,而是返回一个新的字符串。
如果我们需要一个可以改变的字符串,那么我们可以使用 StringBuffer 或 StringBuilder。否则,因为每次都是创建一个新的字符串。所以,这将浪费好多时间在垃圾回收上。
本文英文原文 http://www.programcreek.com/2009/02/diagram-to-show-java-strings-immutability/