有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java会的。hashcode()返回一个不同的int,因为占用空间很小?

如果我在某个对象上调用Object.hashcode()方法,它将返回该对象的内部地址(默认实现)。这个地址是逻辑地址还是物理地址

在垃圾收集中,由于内存压缩,对象在内存中发生移动。如果我在GC之前和之后调用hashcode,它会返回相同的hashcode(它返回)吗?如果是,为什么(因为压缩地址可能会改变)


共 (2) 个答案

  1. # 1 楼答案

    在这个link中,它表示默认的哈希代码确实是对象的JVM地址,但如果它被移动,地址将保持一致。 我不知道这个源代码有多可靠,但我确信这个方法的实现者考虑到了这个场景(这不是罕见的或不常见的情况),并确保了这个方法的正确功能

  2. # 2 楼答案

    如果hashcode发生变化,对象将消失在它插入的哈希集中,Sun将收到大量投诉