2

java.lang.Object@19821f 是什么意思?这是我尝试在没有任何赋值的情况下打印 Object 类型的变量时的输出。代码:

Object object = new Object();
System.out.println(object);
4

4 回答 4

4

实时调频,Object#toString

返回对象的字符串表示形式。通常,该 toString方法返回一个“以文本方式表示”该对象的字符串。结果应该是一个简洁但信息丰富的表示,易于人们阅读。建议所有子类重写此方法。

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

 getClass().getName() + '@' + Integer.toHexString(hashCode())

重要的是要注意,在幕后System.out.println调用toString其参数的方法。

于 2013-01-29T03:40:16.247 回答
0

这正是该toString()方法为该Object类型输出的内容。它(当前)指定为:

getClass().getName() + '@' + Integer.toHexString(hashCode())

因为Object是所有对象的超级类,它可以是任何类型的对象,所以期望派生对象将覆盖该toString()方法以提供更有用的表示。

于 2013-01-29T03:35:36.537 回答
0

这是Object.toString(). 您甚至可以查看它的源代码

于 2013-01-29T03:36:41.633 回答
0

这是您刚刚实例化的对象的哈希码。println 方法只是调用 Objects 的 toString 方法。

于 2013-01-29T03:36:45.723 回答