【发布时间】:2011-04-17 08:06:13
【问题描述】:
如果我在某个对象上调用Object.hashcode() 方法,它会返回该对象的内部地址(默认实现)。这个地址是逻辑地址还是物理地址?
在垃圾回收中,由于内存压缩,对象在内存中发生移动。如果我在 GC 之前和之后调用 hashcode,它会返回相同的 hashcode(它返回)吗?如果是,那么为什么(因为压缩地址可能会改变)?
【问题讨论】:
-
如果您打印几个
Object.hashCodes 的值,您可能会注意到它们不太可能是地址。例如,任何合理实现的奇数。