String s = "Hello";s = s

20 查阅
String s = "Hello";s = s + " world!";这两行代码执行后,原始的String 对象中的内容到底变了没有?

参考答案:

正确答案:

\r\n

没有。因为String 被设计成不可变(immutable)类,所以它的所有对象都是不可变对象。
在这段代码中,s 原先指向一个String 对象,内容是 \"Hello\",然后我们对s 进行了+
操作,那么s 所指向的那个对象是否发生了改变呢?答案是没有。这时,s 不指向原
来那个对象了,而指向了另一个 String 对象,内容为\"Hello world!\",原来那个对象还
存在于内存之中,只是s

代码