java中的equals方法和hashcode的关系

2025-03-09 08:21:13
推荐回答(3个)
回答1:

equals()方法,该方法定义在Object类中,因此Java中的每个类都具有该方法。

对于Object类的equals方法,它是判断调用equals方法的引用与传进来的引用是否一致。即这两个引用是否是指向同一个对象。对于Object类的equals方法涞水,它等价于==
所以false

对于String类的equals方法来说,它是判断当前字符串与传进来的字符串的内容是否一致。
所以true

不同Object对象的hashCode不同

回答2:

规则1
JDK类中有一些类覆盖了oject类的equals()方法,比较规则为:如果两个对象的类型一致,并且内容一致,则返回true,这些类有:
java.io.file,java.util.Date,java.lang.string,包装类(Integer,Double等)

规则2
当参数obj引用的对象与当前对象为同一个对象时,就返回true,否则返回false.

a.equals(b)类型一致,都是空字串,所以相等,会用规则1
t1.equals(t2),不是同一个对象,只会用规则2,所以不等

回答3:

可以自己进去源码看一下,equals方法是可以override的。