上面运行结果可以说明两个对象值相同(x.equals(y) == true),但却可有不同的hash code,
其实两个类都不相同,但是equals相同。
下面谈谈equals和 hash code:
1.equals
equals其实是调用对象的equals方法。那么对象我们通常没有写equals方法方法。这里需要了解的是任何对象的都隐式的继承Object .上面我写的Dog类其实是 public class Dog extends Object{} 。 继承Object就有了equals方法。Object的默认的equals方法是比较两个对象的引用是否是同一个对象(就是 dog == person )
Object类equals方法原代码: