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

如何用Java实现==运算符?

冷善
2023-03-14
问题内容

具体来说,在对象引用相等的情况下,==运算符的作用是什么?

如果在比较时引用对相同的对象地址求值,则比较是否返回true?还是利用两个引用的hashCode值确定对象是否相同?

具体来说,我想知道==操作引用 了JVM管理的哪些数据结构以
进行参考比较。==是否依靠OOP进行参考比较?

对我来说不幸的是,JLS没有定义==运算符必须如何工作。Java
API文档没有提及==应该做什么(它们是针对类的,对吧?)


问题答案:

==运算符只是比较引用。

JVM中的引用只是一个标准的对象指针。得出一个32位或64位整数值(取决于平台)。

当比较两个对象引用时,实际上只是在比较两个32位或64位整数,如果它们相同,则等于。整数值是内存中的位置。



 类似资料:
  • 问题内容: 我正在尝试创建一个无符号整数类。 有没有办法实现诸如 +,-,*,/,<<,>>,|,^,>>>,<< 问题答案: Java不支持运算符重载。你是唯一的选择定义了类似的方法,,,等,并写出逻辑存在,并调用它们的特定操作。 您可以看一下BigInteger类,以了解如何定义支持各种操作的方法。如果有兴趣,您甚至可以浏览源代码,您可以在 jdk 主目录的 src 文件夹中找到该源代码。 _

  • 假设: 2的补码形式的32位有符号整数 true和false是值为1和0的整数 java运算符 你能实现像<代码>

  • 本文向大家介绍Python如何实现大型数组运算(使用NumPy),包括了Python如何实现大型数组运算(使用NumPy)的使用技巧和注意事项,需要的朋友参考一下 问题 你需要在大数据集(比如数组或网格)上面执行计算。 解决方案 涉及到数组的重量级运算操作,可以使用NumPy库。NumPy的一个主要特征是它会给Python提供一个数组对象,相比标准的Python列表而已更适合用来做数学运算。下面是

  • 问题内容: 我已经尝试实现sizeof运算符。 但是,对于任何一种数据类型,结果总是以“ 1”表示。 然后,我为此搜索了一下..,我发现代码是 强制转换的 如果代码是强制转换的,那么代码也可以正常工作。.我不明白为什么..该代码也完美地填充了结构。 它也为 有人能解释一下如果进行类型转换和未进行类型转换如何工作吗? 提前致谢.. 问题答案: 指针减法的结果以 元素 为单位,而不是以字节为单位。因此

  • 本文向大家介绍java中实现四则运算代码,包括了java中实现四则运算代码的使用技巧和注意事项,需要的朋友参考一下 最近上网查了一下,竟然没有找到用Java编写的四则运算的代码,就小写了一下.如有问题请大家反馈. 1.说明 代码只是实现了简单的四则运算,支持+,-,*,/,(,) 只能计算出正确的表达式的值,没有对非法表达式进行校验. 2.实现方法 第一步:将输入的字符串转换为List,主要是用来

  • 问题内容: hashCode()如何实现? 我的假设是它将对象存储位置用作运行哈希函数的初始数字(种子)。然而,这种情况并非如此。 我还研究了Hash:它在内部如何工作?但它不能回答我的问题。 是的,我可以下载SDK,但是在执行此操作并查看代码之前,也许其他人已经知道了。 谢谢 :) 编辑: 我知道它应该被覆盖等等,所以请尝试保持话题:) 问题答案: 当然,它是特定于实现的,但是通常,对象的哈希码