为什么默认的Object.toString()包含hashcode?

为什么默认的Object.toString()包含hashcode?

如果你执行:

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

您可能会看到输出如下

ObjectClassname@hashcodenumber

我的问题是:在那里显示hashCode号码有什么具体原因吗?


摇曳的蔷薇
浏览 642回答 3
3回答

蛊毒传说

添加有用的东西。有些新手可能会对为什么通过toString()与通过hashCode()..这是因为toString()方法返回相同哈希代码的十六进制表示。Integer.toHexString(object.hashCode());将返回由object.toString().

芜湖不芜

从javadocs:在合理的实际情况下,hashCode类对象定义的方法确实返回不同对象的不同整数。(这通常是通过将对象的内部地址转换为整数来实现的,但JavaTM编程语言并不需要这种实现技术。)hashCode出现在对象的字符串表示中,这样您就可以将该对象与同一类的其他对象区分开来。这对于调试非常有用。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java