什么是字符串不可变性?
1. 声明字符串
初始化一个字符串 str
String str = "Hello";
变量str存储字符串对象的引用

2. 将字符串变量分配给另一个字符串变量
将str分配给str2
String str2 = str;
因为他是相同的字符串对象,所以str2存储相同的引用值

3. 连接字符串
使用字符串的concat()方法将" World"连接到str
str = str.concat(" World")
str存储新创建的字符串对象的引用,如下所示

总之,一旦在堆中创建了字符串,就无法更改它。字符串方法不会更改字符串本身,而是返回新的 String。
如果我们需要一个可以修改的字符串,我们将需要StringBuffer或StringBuilder。否则,垃圾回收将浪费大量时间,因为每次都会创建新字符串。










