调试和正常Java执行中的hashCode()不同

问题描述 投票:0回答:1
public static void main(String[] args) {
    System.out.println(new boolean[] {}.hashCode());
}

正常运行结果始终为189568618

调试结果始终为 321142942

为什么?

(azul-21.0.2)

java hashcode
1个回答
0
投票

hashCode()
返回一个由哈希算法生成的整数值。

相等的对象(根据它们的 equals())必须返回相同的哈希码。

在您的情况下,您的对象处于两种不同的运行状态(发布和调试模式),因此它们不相等。

© www.soinside.com 2019 - 2024. All rights reserved.