数字附加到变量的数字?

时间:2012-06-14 23:09:21

标签: java eclipse

在Eclipse中,在调试时,我看到一个数字附加到变量上 com.blah.blah.blah@82963fb

82963fb是什么意思?它是内存地址吗?

2 个答案:

答案 0 :(得分:5)

它是对象的“识别哈希码”值的十六进制呈现。它是System.identityHashCode(Object)方法返回的值。此方法还用于为类未覆盖Object.hashcode()方法的对象提供默认哈希码值。

它不一定是对象的内存地址,但实际上在身份哈希码和>> a<<<<<<<<<<<<对象的内存地址。 (该值通常基于第一次调用方法时对象的地址。然后对象的地址可能会更改,但哈希码值不会更改。)

(整个字符串由默认的Object.toString()方法生成。@之前的部分是对象的完全限定类名。)

答案 1 :(得分:1)

你看到的是Object.toString()方法的输出。其定义为:

public String toString() {
    return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }

因此,您在@之后看到的是Integer.toHexString(hashCode())