问:不是说字符串是不可变的吗,string s="abc";s="123"不就是变了吗?
答:* 不变指的是String对象 ,也就是说String对象 的内容不会变
String str = "Hello";
str = "Goodbye";
* 在上面的例子中,第二次赋值是把"Goodbye"给了String变量,实际发生的是一个新的字符串"Goodbye"被创建,而且这个新字符串的对象引用(注意引用是新的了,也就是更新了指向 )被储存在了str变量中
之所以看上去变了只是 错把String变量(str)当成了String对象