gpt4 book ai didi

java - 哈希码是在调用 hashcode() 方法时生成的

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:22:27 25 4
gpt4 key购买 nike

我有点困惑,因为这个问题是在一次采访中被问到的,我是这样说的:““hashCode 是为每个对象生成的,当它在当前运行的应用程序的堆上创建时”“”

但是面试说:“它是我们在对象上调用hashcode方法时生成的”

此外,我希望更深入地了解哈希码(以及对 java 来说也是如此),请分享一些链接/资源,因为它在一些工作面试中被广泛询问

PS:当我对一个对象执行 sysout... 时,输出为 employee@942f533

最佳答案

这取决于你在这里的意思。正如其他答案所提到的,创建函数时不会调用函数本身。然而,

   90        * As much as is reasonably practical, the hashCode method defined by
91 * class {@code Object} does return distinct integers for distinct
92 * objects. (This is typically implemented by converting the internal
93 * address of the object into an integer, but this implementation
94 * technique is not required by the ... [JDK]

来自 http://www.docjar.com/html/api/java/lang/Object.java.html

由于对象的地址是在创建时分配的,所以从某种意义上说你是对的。但是,由于它不是必需的,并且许多对象都定义了覆盖,因此它不一定适用于所有对象。

通常在面试中,你要挑战面试官一点点来描述你的意思。如果你这样做是对的,问题就解决了,如果你这样做是错的,那么你至少表明你比原来的陈述有更深刻的理解。

关于java - 哈希码是在调用 hashcode() 方法时生成的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10476491/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com