哈希码在Java对象标头中的作用是什么

时间:2019-04-02 09:30:52

标签: java jvm-hotspot

当锁处于无锁状态时,对象标头中有25位用于标识哈希码。我想知道哈希码的用处。

1 个答案:

答案 0 :(得分:1)

这是一个实现细节,因为真正的定义在源代码中,例如these comments应该解释其中的一些细节。

对于hashCode VM,默认32-bit具有25位(不知道从何处获得23),对于31 VM,具有64-bit

猜测指的是无锁状态,即偏置锁定,但这是一个或另一个,不能同时出现,因为两者在标记工作中根本没有空间。

有用性是相同的(无论您是什么意思)-只是由于位数较少,所以预期会有更高的冲突。