为了账号安全,请及时绑定邮箱和手机立即绑定

equals与==、、、、内存地址与引用内容

equals与==越看越混,之前看到说equals比较的是两个引用是否指向同一个内存地址,而==比较的也是内存地址(对于引用而言,对于数据比较的是数据类型是否相同),看起来两者没什么区别,现在又说equals比较的是引用的内容是否相同,不是比较内存地址吗???

内存地址与引用内容有什么区别啊???

还有就是上面的理解如果有误的话也请指出来,基础比较差,多谢指教!!!

正在回答

6 回答

这个我也查了一下,之前也有疑问,查了之后才知道equals一般情况下确实比较的是地址,但有种情况例外,就是当equals()的括号里面是字符串的时候比较的是内容,应该不会错,希望对你有帮助,加油

2 回复 有任何疑惑可以回复我~
#1

慕函数8614728 提问者

谢谢,这样说就懂啦,
2017-09-07 回复 有任何疑惑可以回复我~
#2

学霸985

额额,谢谢。
2019-02-24 回复 有任何疑惑可以回复我~

请问这个equals在哪一节讲过,忘了哪一节了

0 回复 有任何疑惑可以回复我~
#1

慕的地2053752

哈希吗里面,面向对象中Sting toString那一节
2019-03-27 回复 有任何疑惑可以回复我~

在Java中,String 、Math、还有Integer、Double。。。。等这些封装类重写了Object中的equals()方法,让它不再比较其对象在内存中的地址,而是比较对象中实际包含的整数的值,即比较的是内容。

1 回复 有任何疑惑可以回复我~

java大多数类库都实现了equals()方法,以便用来比较对象的内容,而非比较对象的引用。就像String类

0 回复 有任何疑惑可以回复我~

你可以这么理解:equals比较的是字符串的具体内容,而==比较的是对象的内存地址。

0 回复 有任何疑惑可以回复我~
#1

NJP

而对象也可以自己重写equals方法来自定义判断两个对象是否相等的条件。
2017-09-07 回复 有任何疑惑可以回复我~
#2

慕函数8614728 提问者

谢谢你啦
2017-09-07 回复 有任何疑惑可以回复我~

他里面说的应该是对的,我测试的结果也是一样的,就是equals只比较内容,而==不仅比较内容还要比较地址相等才能是true.

1 回复 有任何疑惑可以回复我~
#1

慕函数8614728 提问者

谢谢你啦
2017-09-07 回复 有任何疑惑可以回复我~
#2

慕函数8614728 提问者

==可以比较内容吗?好像不可以吧
2017-09-07 回复 有任何疑惑可以回复我~
#3

慕的地2053752 回复 慕函数8614728 提问者

之前的练习里面比较书名是否相同就得用equals,用==就会报错
2019-03-27 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

equals与==、、、、内存地址与引用内容

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信