java.lang.Object@19821f 是什么意思?这是我尝试在没有任何赋值的情况下打印 Object 类型的变量时的输出。代码:
Object object = new Object();
System.out.println(object);
java.lang.Object@19821f 是什么意思?这是我尝试在没有任何赋值的情况下打印 Object 类型的变量时的输出。代码:
Object object = new Object();
System.out.println(object);
实时调频,Object#toString
:
返回对象的字符串表示形式。通常,该
toString
方法返回一个“以文本方式表示”该对象的字符串。结果应该是一个简洁但信息丰富的表示,易于人们阅读。建议所有子类重写此方法。class的
toString
方法Object
返回一个字符串,该字符串由对象作为实例的类的名称、at 符号字符“@”和对象的哈希码的无符号十六进制表示形式组成。换句话说,此方法返回一个等于以下值的字符串:getClass().getName() + '@' + Integer.toHexString(hashCode())
重要的是要注意,在幕后System.out.println
调用toString
其参数的方法。
这正是该toString()
方法为该Object
类型输出的内容。它(当前)指定为:
getClass().getName() + '@' + Integer.toHexString(hashCode())
因为Object
是所有对象的超级类,它可以是任何类型的对象,所以期望派生对象将覆盖该toString()
方法以提供更有用的表示。
这是Object.toString()
. 您甚至可以查看它的源代码。
这是您刚刚实例化的对象的哈希码。println 方法只是调用 Objects 的 toString 方法。