【发布时间】:2011-09-23 04:34:39
【问题描述】:
特别是当它们与移动垃圾收集器一起使用时。对象当前的内存位置不能用,因为下次收集时可能会改变,那么对象hash用什么?
【问题讨论】:
-
问题应该是:VMs如何实现
System.identityHashCode(),因为这是IdentityHashMap使用的。
标签: java garbage-collection jvm
特别是当它们与移动垃圾收集器一起使用时。对象当前的内存位置不能用,因为下次收集时可能会改变,那么对象hash用什么?
【问题讨论】:
System.identityHashCode(),因为这是IdentityHashMap使用的。
标签: java garbage-collection jvm
正如 Paulo 在他的评论中指出的那样,System.identityHashCode() 用于此目的。并来自 javadocs:
无论给定对象的类是否覆盖 hashCode(),返回给定对象的哈希码与默认方法 hashCode() 返回的哈希码相同。空引用的哈希码为零。
所以,真的,问题归结为“什么是默认的 hashCode 算法?
【讨论】: