hashcode是否返回内存地址?

sam*_*ara 3 java hashcode

可能重复:
什么是对象hashcode
hashCode()和identityHashCode()如何在后端工作?

我不是在讨论String类或任何其他重写hashcode的类.假设我只是创建了一个Object类的新对象,那么hashcode()无论如何都会identityHashCode(Object x)返回true,返回该对象的内存地址?

NPE*_*NPE 7

不必要.从文档(强调我的):

尽可能合理,Object类定义的hashCode方法确实为不同的对象返回不同的整数.(这通常通过将对象的内部地址转换为整数来实现,但JavaTM编程语言不需要此实现技术.)

  • 有趣的是,`hashcode`是一个int,很可能计算机上的地址空间可能大于可用int的数量,并且内部地址转换为int不一定是双射. (2认同)