class a{
...
public void changeit(String wanttobechanged) {
    wanttobechanged = "new value"; //not right
}public void change(StringBuffer itok) {
    itok.append ("ok !"); // itok's content changed
}
...
}

解决方案 »

  1.   

    c="my String has been changed";
    是指..生成一个新的String对象,c指向新的String对象...
      

  2.   

    immutable 的不是 c,而是内存中的"myString"和"my string has been changed."。
    c 原本指向myString,后来经过c="my String has been changed";之后,c原本指向的地址上的内容还是“myString”,但是c现在指向了另一个地址,那个地址里的内容是“my string has been changed.”