当前位置: 首页 > 面试题库 >

Java hashCode()和identityHashCode()在后端如何工作?

郑向阳
2023-03-14
问题内容

如何做Object.hashCode()System.identityHashCode()工作在后端?是否identityHashCode()返回对象的引用?是否hashCode()取决于?对象的?==操作员如何在后端工作。

hashCode()和之间有什么区别identityHashCode()


问题答案:

后端的Object.hashCode()System.identityHashCode()如何工作?

假设尚未覆盖,则该Object.hashCode()方法只需调用即可System.identityHashCode(this)

的确切行为System.identityHashCode(Object)取决于JVM实现。(在最近的Hotspot JVM上的实际实现是相当聪明的,但是我离题了。)

是否identityHashCode()返回对象的引用?

否。它返回int,而an int不能保存引用。

返回的整数identityHashCode可能与对象的(a)机器地址有关,或者可能不是1。identityHashCode() 保证返回的值在对象的生存期内不会改变。这意味着,如果GC(在identityHashCode()调用之后)重定位对象,则它不能使用新的对象地址作为身份哈希码。

hashCode()是否取决于?对象? ==运算符的后端工作方式。

这没有道理。Java中没有? ==?==运算符。

hashCode()和identityHashCode()有什么区别?

以上已部分解释。其他差异包括:

  • hashcode()方法是非最终实例方法,并且在覆盖的任何类中都应覆盖此equals(Object)方法。相反,identityHashCode(Object)是一种static方法,因此不能被覆盖。

  • identityHashCode(Object)方法为你提供了一个对象的标识符,该标识符在理论上可以用于哈希和哈希表以外的其他用途。(不幸的是,它不是一个独特的标识符,但被保证为对象的生命周期永远不会改变。)



 类似资料:
  • 我是一名前端开发人员。后端开发人员离职了。因此,我还将处理后端部分。我没有任何后端开发经验。我正在分析后端代码。我有几个问题。我想澄清我的概念。 我已经附加了Java代码文件。 1-这些进口产品的用途是什么 2-为什么在声明每个变量之前先放置@JsonProperty? 3-为什么我们在少数几个方法中使用类名?例如: 4-有什么用: 5-有什么用: 6-hashCode()方法实际上在做什么? 请

  • 问题内容: 在我的数据库中,我可以说有5000多个用户,现在,如果我在主父节点中使用来获得多少人, 我知道getChildrenCount会返回一个带有父级内部子级数量的long,但这会如何影响性能? 几个月前,我制作了一个应用程序来管理用户,该应用程序比通过Web控制台更有效地管理用户,因为页面变得静态并且用户不断增长。 现在,我想知道是否每当我请求用户数量时,该应用程序就会循环遍历5000+个

  • 从他们的网站上,我们包装的定义如下: webpack是一个模块绑定器。它的主要用途是捆绑JavaScript文件以供在浏览器中使用,但它也能够转换、捆绑或打包任何资源或资产。 我的困惑从这个答案开始。它将webpack-dev-server描述为: Webpack Dev Server本身就是一个express服务器,它使用Webpack Dev中间件来服务最新的捆绑包,并另外处理客户端中实时模块

  • 问题内容: 好的,我回来了。我将问题完全简化为三个简单的字段,但仍然使用addJSONData方法停留在同一行上。我已经坚持了好几天,无论我如何重新处理ajax调用,json字符串,等等等等……我都无法使它正常工作!手动添加一行数据时,我什至无法将其用作功能。任何人都可以发布可与ASP.NET和JSON一起使用的jqGrid的工作示例吗?您能否包括2-3个字段(最好是字符串,整数和日期?),我很高

  • 首先,我想道歉,如果这个问题是抽象的或不适合本站。我真的不知道还能去哪里问。 目前我已经在iOS和Android上开发了应用程序。它们在firebase中保留所有的状态,因此所有的内容都可以即时保存到firebase实时数据库中。 在创建用户之前,我手动填充实时数据库中的一些数据,这些数据应该存在以便应用程序能够运行,例如用户的配置数据。当我“完成”使用该应用程序时,我直接在Firebase控制台

  • 所以我的问题就在这里:顺便说一句,我在通过谷歌找到如何做到这一点时遇到了一些困难,我尝试使用StackOverflow,但找不到确切的答案 纱线启动 要在localhost:3000上运行并启动,我希望它在localhost:3000上启动,同时在该服务器上启动express服务器,也就是在express.js中启动react服务器。 似乎我找到的每一个教程,大多数都过时了,剩下的是将反应变成静态