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

最佳答案

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

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

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

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

关于java - 哈希码在Java对象 header 中的作用是什么,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55471337/

10-13 05:40