b=a并不表示b就是a,只不过两者引用同一内容(比如例子中的"Hello"字符串)
当b="OK";后,实际上b引用的是"OK"这个字符串,已经不是a所引用的"Hello"字符串了下面的o,f也是如此

解决方案 »

  1.   

    Ref_type Ref2=Ref1;//两共同引用同一对象
    Ref2.val=-1;//修改Ref2的值会修改Ref1的值以上两行可能使你对后面的例子感到迷惑,从上面两行来看,Ref2引用的对象是Ref1引用的对象,当Ref2.val=-1时,是改变了Ref2所引用对象的val属性的值。所以,此后Ref1.val也是-1,因为他们本来就指向同一引用对象,只是这个引用对象中某个属性发生了变化,或者说所引用对象中val本来指向的值失效,它重新指向新的值-1。
    这就可以解释b=a,o=f这些例子了
      

  2.   

    我明白了!
    在b="OK"的时候,此时内存重新分配空间用于存放“OK“,用变量b来引用,所以
    此时b和a根本没有关系了,地址比较自然也就为False!
    谢了!bearontree(树袋熊)