正如javadoc所解释的:
在合理可行的情况下,由 Object 类定义的 hashCode 方法确实为不同的对象返回不同的整数。(这通常通过将对象的内部地址转换为整数来实现,但 JavaTM 编程语言不需要这种实现技术。)
因此,如果 JVM 使用这种策略实现 hashCode() ,除非您有大量的堆空间并且非常倒霉,否则您不会发生任何冲突。
也就是说,ObjecthashCode()
在实践中并不是很重要,因为在 HashMaps 中用作键的大多数类都会覆盖该hashCode()
方法。