s2=s;此时s2和s指向了同一个对象(输出为good),并不是s2指向了s

解决方案 »

  1.   

    个人拙见:s="good";
    s2="bad";
    s2="good";
    s="new";print:
    new
    good
      

  2.   

    System.out.println(s);   new
    System.out.println(s2);  good
    s2被原来的s覆盖了,s2的引址指向了s原来的对象。
     
      

  3.   

    当执行了s2=s后,变量s2和s都指向了“good”的地址。而s=new StringBuffer("new")又给s重新开辟地址创建了一个新对象(“new”)。所以最后s指向“new",而s2指向"good".