Object 中的equals方法, 比较的为对象的引用, 也就是内存地址(下面还有疑问), 不过C++中有提到声明引用是不分配内存地址的,这点让我思考非常混乱,就我来理解上反正有偏差。C++的引用跟JAVA的引用不一样?是不是C++的引用在声明时,还未分配内存,而在给引用赋值以后才分配内存给他?这里提到的比较引用,是不是就是我所认为的赋值以后的引用啊?还望高手指点。还有就是 “==” 比较的是不是就是引用的hashcode计算出的散列码? 

解决方案 »

  1.   

    Java的引用就是C++的指针,而不是C++的引用。
    Java的比较引用就是比较内存地址。
    java的==是比较的引用,而equals比较的是hashcode算出的散列。
    可以重写equals实现具体意义的相等
      

  2.   

    再补充一下:
    Object 中的equals方法,默认就是比较引用。
    C++中的引用就是常量指针,赋值后不能更改。
      

  3.   

    说都这么深奥啊!我对这个问题理解的很简单~equals  只关注“值”,只要值相等返回的就是true==      是确定存储位置,只有两个对象存储位置相同(即为同一对象),才返回true菜鸟遇见。