当一个对象的jvm地址为0时,它是什么意思?

时间:2013-09-03 12:54:55

标签: java memory hadoop jvm

我有一个对象Mutation,我有“新”编辑。但是当它用toString()输出时,该对象显示Mutation @ 0。这对我来说似乎并不好。这意味着什么?

2 个答案:

答案 0 :(得分:3)

这是无符号十六进制表示

As per Docs of toString() method in Object class

  

类Object的toString方法返回一个字符串,该字符串由对象为实例的类的名称,符号字符“@”和对象的哈希码的无符号十六进制表示组成。换句话说,此方法返回一个等于值的字符串:

Hashcode尚未计算的意义上的zero

Source Code:

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

答案 1 :(得分:1)

如果你查看Mutation的源代码,很有可能你会在那里找到它:

@Override public int hashCode() { 
   //TODO: implement this properly!
   return 0; 
}

toString()的默认实现仅报告hashCode返回0的事实。