• 执行后,原始的String对象中的内容到底变了没有?

    执行后,原始的String对象中的内容到底变了没有?

    1. String s = "Hello";
    2. s = s + " world!";

    没有.
    因为String被设计成不可变(immutable)类,
    所以它的所有对象都是不可变对象.

    在这段代码中,
    s原先指向一个String对象,
    内容是 “Hello”,然后我们对s进行了+操作,
    这时,s不指向原来那个对象了,
    而指向了另一个 String对象,
    内容为”Hello world!”,
    原来那个对象还存在于内存之中,
    只是s这个引用变量不再指向它了.