DESKTOP-F6K5GEP_20200829-崔婧涓

一、问题

==运算符与equals方法的区别

解决

相同点:

  • == 和 equals 都用于完成比较操作
  • == 和 equals 的判定结果都是逻辑值(即boolean类型取值 true 或 false )

不同点:

  • == 是个运算符,本质上用于比较两个值是否相等

    • 使用 == 运算符比较的值可以是基本类型的值,也可以是引用类型的值
    • 使用 == 运算符可以比较两个变量中存储的值是否相等
    • 使用 == 运算符可以直接比较两个字面量是否相等
  • equals 是个方法,用于比较当前对象与另外一个对象是否"相等"

    • 当当前对象通过自己的equals(Object) 方法与另一个对象比较后返回true时就认为当前对象与另外一个对象是"相等"的
    • 因为 equals(Object) 方法是 Object类 定义的,所以所有对象(包括数组)都实现了该方法
    • 通常,作为Object类的子类会重写 equals(Object) 方法从而实现当前对象与另一个对象的比较,子类重写 equals(Object) 方法时通常还要重写hashCode方法
    • 当子类未重写从Object继承的 equals(Object) 方法时,该方法内部采用==运算符直接比较当前对象的引用是否等于另一个对象的引用

二、吐槽

还是觉得周日放一天假比较好。

标签

© 2021 成都云创动力科技有限公司 蜀ICP备20006351号-1