在Eclipse中,在调试时,我看到一个数字附加到变量上 com.blah.blah.blah@82963fb
82963fb是什么意思?它是内存地址吗?
答案 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())