equals和==的问题

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

慕瓜2589535

2016-12-19 21:43

看视频看的蒙蔽了,哪个是比较地址,哪个是比较值?还有equals重写后又是比较什么

写回答 关注

4回答

  • Haneul丶
    2016-12-19 22:01:03
    已采纳

    Dog dog = new Dog 就是一次对象的引用  没重写之前equals比较对象的引用是否指向同一块内存

    慕瓜2589...

    非常感谢!

    2016-12-20 21:01:21

    共 1 条回复 >

  • 慕瓜2589535
    2017-02-08 21:13:32

    已经知道了 谢谢大家

  • AZhi0
    2016-12-19 22:04:37
    1. 这个问题要看回Object类,( 所有java 对象的父类 , 里面自带了equals 方法, 就是用的 ==, 比较连个对象的地址), 没有明确写出继承关系的,都是默认继承了Object , 没重写equals 就用了Object 的equals(==)。

    2. 重写后要根据写的具体内容来看。eg:Student(id ,name), 每个学生只有唯一一个id , 所以他的equals方法可以只比较他的id,id 相同就可以认为是同一个学生了

  • Haneul丶
    2016-12-19 21:55:07

    equals在没重写前和==一样是比较地址的  重写之后就是比较值了

    (注:==可以判断两个基本数据类型的数据值是否相同 如果判断的是两个引用的值是否相同 比较的就是内存地址了)

Java入门第二季 升级版

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

530653 学习 · 6091 问题

查看课程

相似问题