还有java里面的hash Code有何意义?

解决方案 »

  1.   

    String s3=s2;
    不就是拷贝s2这个reference么?怎么会不是指向同一个内存
      

  2.   

    (1)开始的时候,内存中只有一个地方存放着"hello",s1和s2都指向这块内存,所以第一次打印了OK。
    后来,s1,s2都改变了。因为String都是静态的,所以s2 += "aa";和s1 += "aa";都分别新建了新的String。这时s1,s2分别指向了新的对象,它们就是不同的了。
    (2)同上面的,s2指向了新的内存区域。s3没有改变。
      

  3.   

    s2 += "aa";
    s1 += "aa";里面的+相当于new操作
      

  4.   

    哦,明白了,String类比较特殊啊