事实上,那本厚厚的Java书上很好的解释了这个问题——
不可变字符串与限定字符串
String对象是不可变的,它的内容是不能改变的。
下列代码会改变字符串的内容吗?
String s =
"Java"
;
s =
"HTML"
;
|
答案是不能。
第一条语句创建了一个内容为"Java"的String对象,并将其引用赋值给s。
第二条语句创建了一个内容为"HTML"的新String对象,并将其引用赋值给s。赋值后第一个String对象仍然存在,但是不能再访问它,因为变量s现在指向了新的对象,如上图。