Java:f21。Person@373ee92

Java:f21。Person@373ee92,java,tostring,Java,Tostring,f21。Person1@373ee92 好的,f21代表软件包。 类类型的人 谁能简单地解释一下为什么后面有“@”和随机字符。随机字符代表什么(在内存中的位置?) 当我执行以下操作且尚未声明toString()方法时,我收到此消息: 如果不重写类中的toString()方法,将调用对象类的toString() System.out.println(myObject);// this will call toString() by default. 下面是从类执行toString的实现 因此,对

f21。Person1@373ee92

好的,f21代表软件包。 类类型的人

谁能简单地解释一下为什么后面有“@”和随机字符。随机字符代表什么(在内存中的位置?)

当我执行以下操作且尚未声明toString()方法时,我收到此消息:


如果不重写类中的toString()方法,将调用对象类的toString()

System.out.println(myObject);// this will call toString() by default.
下面是从类执行toString的实现

因此,对
21应用相同的方法。Person@373ee92


21.Person(完全限定的类名)+@+37ee92(hasgcode的十六进制版本)

如果不重写类中的toString()方法,将调用对象类的toString()

System.out.println(myObject);// this will call toString() by default.
下面是从类执行toString的实现

因此,对
21应用相同的方法。Person@373ee92

21.Person(完全限定的类名)+@+37ee92(hasgcode的十六进制版本)

它调用toString()实现,如果您没有重写此方法,那么它将调用
对象的版本,实现如下

  public String toString() {
    return getClass().getName() + "@" + Integer.toHexString(hashCode());
  }
它是该实例的hashcode的十六进制版本,它调用toString()实现,如果您没有重写此方法,那么它将调用对象的版本,该版本的实现如下

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

它是该实例的hashcode的十六进制版本

如果不重写
toString()
方法,则使用
对象
提供的方法。它是:

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

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

“随机”字符是对象的哈希代码,以十六进制表示。

如果不重写
toString()
方法,则使用
object
提供的方法。它是:

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

getClass().getName() + '@' + Integer.toHexString(hashCode())
“随机”字符是对象的哈希代码,以十六进制表示