equals()方法,该方法定义在Object类中,因此Java中的每个类都具有该方法。
对于Object类的equals方法,它是判断调用equals方法的引用与传进来的引用是否一致。即这两个引用是否是指向同一个对象。对于Object类的equals方法涞水,它等价于==
所以false
对于String类的equals方法来说,它是判断当前字符串与传进来的字符串的内容是否一致。
所以true
不同Object对象的hashCode不同
规则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,所以不等
可以自己进去源码看一下,equals方法是可以override的。