JAVA基础:讲一下equals()与hashcode(),什么时候重写,为什么重写,怎么重写?

当equals方法进行重写后,hashcode方法也需要重写。

因为equals方法进行重写,那么原本不同的两个对象可能就会相同了,比如两个学生,我们的eqauls判别标准是两个学生的id相同,就会认为(学生A).equals(学生B),然而A与B显然是不同的对象,对应不同的地址,那么hashcode此时不重写,此时hashcode就会产生两个不同值,这与哈希表的逻辑不符,所以此时hashcode需要将这两个学生看作是同一个对象,并且产生相同的散列值。

你可能感兴趣的:(八股文自用,java,jvm,开发语言)