equals比较两个新建对象为什么会是true

equals比较两个新建对象为什么会是true

http://img1.sycdn.imooc.com//climg/60a5e08309fa4e3f15980468.jpg

如果是这样的话,equals和==的结果不应该是一样的吗(都比较堆中的地址),创建了两个新的对象,地址肯定不一样啊,不因该都是false吗,为什么equals是true呢


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,是因为在String类中将equals()方法重写了,所以通过equals()方法比较不是地址值,而是数据值。所以在下方代码中,通过equals()方法比较的结果为true。

http://img1.sycdn.imooc.com//climg/60a6066009c77bd906880124.jpg

祝学习愉快!

  • 慕斯5590525 提问者 #1

    所以只要是通过String类型来调用equals()就是比较字符串的内容而不是地址了是吗

    (如果调用类中的getName方法

    • eg:Animal a= new Animal();

    • a.getName().equals(***);

      这样调用的equals是比较内容而不是地址,对吗



    2021-05-20 16:31:07
  • 好帮手慕小尤 回复 提问者 慕斯5590525 #2

    同学你好,同学理解是正确的。

    祝学习愉快!

    2021-05-20 17:55:36
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师