不是。equals可以被你自己重载,你可以编写任何判断相等的原则,默认情况下,是递归比较成员对象依次是否相等。
散列码就是hashCode,是根据hash算法生成的。

解决方案 »

  1.   

    equals的默认判断相等的原则是什么?好象跟"=="不一样.
      

  2.   

    equals是用来比较对象的内容是不是相等
    ==是用来比较两个引用所指向的对象是不是一个,也就是比较内存地址是不是相同
    例如
    String a="123";
    String b=a;
    String c="123";
    那么 a==b 真,a==c 假,a.equals(c) 真至于hashCode是用来将对象放入象Hashtable 之类的容器时使用的,Hashtable 会根据所放入对象的hashCode值来选择不同的Bucket,如果该对象没有提供重写hashCode方法,那么会使用Object类缺省的hashCode方法,即根据其内存地址来计算(这通常不是我们需要的),所以如果希望自己的对象能够正确的放入Hashtable 之类的容器,那么要重写hashCode方法
      

  3.   

    楼上例子有误
    String a="123";
    String b=a;
    String c="123";
    在这种情况下,a==b,a==c,a.equals(c) 均为真应该为:
    String a = "123";
    String b = a;
    String c = new String("123");
    那么 a == b 真,a == c 假,a.equals(c) 真
      

  4.   

    equals 是用来 比较2个对象的内容的
      

  5.   

    在Think in Java 中有重点介绍hashcode和equals的部分
      

  6.   

    建议直接看JDK DOC中相关文档。
      

  7.   

    楼上的,你5个三角就是用“看文档”这样的回答混来的吗?答案:
    没有任何关系。但在实现上有共同之处。
    在Object类中:
    equals方法的实现与"=="运算符的作用是一样的。当且仅当两个Object引用指向同一个地址时,返回true。hashCode返回的int值与本对象内存地址有关。也就是:当且仅当两个Object引用指向同一个地址时,返回相同的hashCode。
      

  8.   

    to alienbat(死灵巫师) :   谢了
      

  9.   

    laugh alienbat(死灵巫师) ( ) 这种问题,要我解释绝对不如跑去看文档,我就算解释也没有文档精确,至多是把文档搬过来。看了你的解释,我劝你还是不要误人的好,太片面了。另外,楼主连手边的文档都懒得翻,非要跑到这里来浪费人时间精力给解释,进步太难。
    好比楼主眼前一碗粥,自己都过10岁了还非要人喂,
    我说:自己动手吃。
    居然有人跳出来说:你20多岁的年龄都长哪里去了?连喂下都不会,要他自己动手。sign希望楼主自己体会,以后碰到这种问题,到底要怎么处理,是还等人喂?还是自己动手。