问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java中equals()方法详解

发布网友 发布时间:2022-04-27 09:11

我来回答

3个回答

热心网友 时间:2023-09-17 03:21

因为你的Value类没有重写equals 方法,这个方法是在Object类中定义的,是可以自己按照需要进行重写的,如果没有重写,其默认的逻辑是比较两个相互equals 的对象的内存地址是不是同一个地址,第一个输出的时候v1,v2都是new出来的,所以v1和v2在堆中是不同的内存地址,所以equals结果为false
第二个输出,其调用的是Integer类的equals,Integer类中有重写原有equals方法的逻辑,其逻辑是比较两个Integer对象中封装的数字的值,如果相同就返回true,因此第二个输出true
第三个输出false原理同第一个,两个对象之间使用==比较的就是内存地址,因为都是new出来的,堆内存地址不同,所以输出false
简单来讲,如果来自同一个类的两个对象,如果没有重写equals方法的逻辑,其==结果和equals结果是相同的,如果有重写equals方法,则==和equals结果可能会不同

热心网友 时间:2023-09-17 03:21

v1.i = v2.i = 100 并不是对象引用的意思,而是对2个对象的变量 i 赋值100。
如果写成
v1.i =100;
v2.i = 100;
是不是更看得清楚,所以最好还是别偷懒

Value类没有重载equals方法,所以是用的Object的equals实现,v1.equals(v2)是比较两个对象地址是否相同,显示v1和v2是两个不同的对象,所以为false。
Integer有重载equals方法(你可以看它的源码),比较的是值是否相等。

热心网友 时间:2023-09-17 03:22

第一个类V1和V2都是一个对象引用啊,指向不同的内存地址的,i只是对象的成员
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
什么样的猫叫起司猫? 2021年春节后工地普遍是哪天开工? 美国大学介绍——印第安纳大学伯明顿分校 480-500分之间的大学有哪些 平安驾意险需要买两份保险吗? AI编译器技术剖析(一)-概述 AI编译器技术剖析(三)-树模型编译工具 Treelite 详解 研究性学习:人工智能产品的个人使用情况调研 全球变化中国现阶段水资源概况 我国水资源人均占有量现在只有 java equals方法 JAVA的equals方法 java中equals对字符数组的判断 深入java的equals方法,怎么比较两个对象的 java中对象引用的打印和equals方法 关于java中的 equals() java中的equals 强光手电筒开关怎么换,开关在侧面怎么取出坏的开关 强光手电筒(也是电棍)。灯泡烧坏了,怎么换。。求解。 强光手电不亮了可能是灯头部分怎么办 关于java 的equals方法。 怎样拆解强光手电? equals 的用法 java 中String的equals()方法是什么? 关于java中equals方法的疑惑 强光手电筒怎么拆开修理? JAVA中equals的用法 JAVA中的equal方法的格式和用法? 电击强光手电筒怎么维修视频 java中的equals怎么用? Java中equals方法的返回值是多少 如何重写Java中的equals方法 猎头顾问电话面试沟通技巧有哪些 如果你接到了猎头公司的电话,接下来你该怎么做 掌握沟通技巧就能事半功倍,资深猎头如何电话面试候选人呢? 猎头顾问如何打cold call ? 猎头话术技巧 与猎头沟通需要注意的 当猎头公司与你打交道时,你该怎么做? 如何与猎头沟通 ★猎头顾问如何拥有好的沟通,沟通技巧有哪些 谁知道如何应对猎头电话面试 猎头顾问第一次打电话给候选人,哪些需要注意的? 接到猎头电话之后应该注意哪些事项? 工作中如何接猎头电话 怎么与猎头主动交流 ? 请问和猎头公司沟通需要注意哪些事宜? 猎头顾问如何提高人选推荐的成功率 公积金可以提出来用于租房吗? 描写春天的诗句古诗有哪些?