JVM 如何确保 System.identityHashCode() 永远不会改变?
2022-08-31 13:43:32
通常,Object.hashCode()
的默认实现是内存中对象的分配地址的某个函数(尽管 JLS 没有强制要求这样做)。既然 VM 在内存中分流对象,为什么 System.identityHashCode()
返回的值在对象的生存期内永远不会更改?
如果它是一个“一次性”计算(对象被计算一次并存储在对象标头或其他内容中),那么这是否意味着两个对象可能具有相同的(如果它们碰巧首先被分配在内存中的同一地址)?hashCode
identityHashCode