为什么hashCode()在所有连续执行中为对象返回相同的值?
我正在尝试一些关于java中对象相等的代码。正如我在某处读到的那样
hashCode()
是通过应用哈希函数生成的数字。每个对象的哈希函数可以不同,但也可以相同。在对象级别,它返回对象的内存地址。
现在,我有示例程序,我连续运行了10次。每次我运行程序时,我都会得到与哈希代码相同的值。
如果函数返回对象的内存位置,为什么java(JVM)在连续运行中将对象存储在相同的内存地址?hashCode()
你能给我一些见解和你对这个问题的看法吗?
我正在运行的用于测试此行为的程序如下:
public class EqualityIndex {
private int index;
public EqualityIndex(int initialIndex) {
this.index = initialIndex;
}
public static void main(String[] args) {
EqualityIndex ei = new EqualityIndex(2);
System.out.println(ei.hashCode());
}
}
每次我运行此程序时,返回的哈希代码值都是 。4072869