因此,如果我们未进行方法的重写,默认调用的就是 Object 类的 hashCode() 和 equals() 方法,而 Object 类的 hashCode() 是根据当前对象的地址进行计算的,也就是说,我们 new 了两个对象,即使它们的内容是一样的(即我们认为他们逻辑上是相等的),但它们通过 hashCode() 方法计算得到的 hash 值显然是不同的,此时...
hashcode和equals方法的区别与联系 equals:比较的是两个对象的内存地址值 hashCode:比较的是两个对象在hash表中的位置 hashCode的由来:对象的内存地址通过hash函数算法得到hashcode 1.equal()相等的两个对象他们的hashCode()肯定相等,也就是用equal()对比是绝对可靠的。 2.hashCode()相等的两个对象他们的equal()不一...
因为没有覆盖hashCode方法,所以jdk使用默认Object的hashCode方法,返回内存地址转换后的整数,因为不同对象的地址值不同,所以这里不存在与p2相同hashCode值的对象,因此jdk默认不同hashCode值,equals一定返回false,所以直接存入集合。