问问以下关于 java中的hashcode()理解是否正确
各位大神好,我是一名大二的学生,因为对计算机有着由衷的热爱,所以学习了java,最近学到了hashCode()这个知识点,以下是自己的一些理解,希望各位大神這出我的理解是否存在错误。
对象实际上是照着类的样子在堆空间建立的一个引用,这个引用是一个地址,我们在对象上的操作实际上是在这个引用的基础上偏移一定的内存大小,从而实现数据存取操作的。那么hashCode()方法是每个类的公共基类Object中所具有的一个方法,它的作用是将每个对象的引用的首地址根据一定的运算后,根据运算结果将对象存储到一定的内存空间中。
从而可以得出结论:
1、 每一个对象中的hashCode()方法返回的值有且只有一个。
2、每一个hashCode()方法中,参与运算的值是这个对象的首地址。
不知上面的结论对不对。如果对,那么问题来了。即使我们重写了equals()方法,参与hash运算的值,也就是这个对象的首地址并没有变化,也就是说,equlas()方法和hashCode()方法是两个不存在一定关联的函数,这个结论肯定是错误的,然而我又不知道错误在哪里,还望各位大神指正。