为什么对象比较和字符串比较用==都是false?

为什么对象比较和字符串比较用==都是false?

为什么两个用==比较的都是false?

正在回答

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

3回答

==比较的不仅仅是内容,也对两个对象的地址进行比较,如果地址不相同返回的也是false。很明显课程中创建了两个对象,分配内存空间地址是不相同的。

  • 馈赠 提问者 #1
    非常感谢!
    2017-07-11 15:32:17
  • 那是不是说明这两个用法是一样的,可以二选一呢?
    2017-08-14 23:23:41
  • 如果没有重写Object类中equals方法时,两个的用法是一样的,可以二选一。但是呢,不建议这么做,因为一般情况下我们会重写equals方法的。祝学习愉快~
    2017-08-15 10:27:26
我想跑路 2018-02-22 19:51:39

重点mark!

好帮手慕雪 2017-07-11 15:24:26

那是因为它们左右两边不是同一个new出来的对象,各用new出来不同的对象。例如以下则会返回:true

同理对象也是一样

http://img1.sycdn.imooc.com/climg//59647cc9000142d506710321.jpg

  • 提问者 馈赠 #1
    嗯谢谢,我知道如果用String str2=str1会返回ture 但不知到==也是对地址的比较
    2017-07-11 15:33:23
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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