总结得对否

来源:9-9 Java 中的 Object 类 Ⅱ

StaceySmile

2016-04-14 21:27

比较两个对象是否相等,如果是equals(),就是比较两个对象的属性,属性值,类型是否相同;如果是==,就是比较两个对象是否分配了不同的内存空间。

写回答 关注

3回答

  • 陈茜1997
    2016-04-14 22:08:41
    已采纳

    错,equals才是比较两个对象的内存空间

    Stacey...

    谢谢!

    2016-04-20 19:50:57

    共 1 条回复 >

  • amyzhou8621
    2016-08-09 15:45:25

    Object类中默认的equals()方法是比较引用地址的,想要比较两个对象的属性是否相同,就要重写equals()方法来做比较了。你没删除重写的equals()方法,比较的是对象的属性。应该是这样理解的吧。

  • 云不见天的黑
    2016-04-14 23:13:09

    对。==比较的是地址,equals比较的是值。两个值相同的字符串用==比较结果可能是false,而equals()则一定为true;除非两个字符串是同一个new出来的对象,不然比较字符串是否相同用equals()。

    Stacey...

    我知道原因了,我忘记把子类里添加的equals()方法删除了,子类里添加的equals()方法是以==比较的,所以才出现了相反的结果。

    2016-04-20 19:53:40

    共 2 条回复 >

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530562 学习 · 6091 问题

查看课程

相似问题