一尘不染

Java为什么默认的Object.toString()包含哈希码?

java

如果执行:

System.out.println(someObj.toString());

你可能会看到类似的输出

someObjectClassname @ hashcodenumber

我的问题:是否存在显示hashCode号的任何特定原因?


阅读 415

收藏
2020-03-02

共1个答案

一尘不染

对象哈希码是唯一的标准标识符,可能允许您在Java中区分不同的任意对象。它不一定是唯一的,但是相等的对象通常具有相同的哈希码。

默认toString()方法显示了对象类及其哈希码,因此您可以希望区分不同的对象实例。由于默认情况下也会在错误消息中使用它,因此这很有意义。

有关更多信息,请参见hashCode()方法说明。

2020-03-02