当前位置: 首页 > 图灵资讯 > 技术篇> Java 深入学习(16) —— equals 与 ==

Java 深入学习(16) —— equals 与 ==

来源:图灵教育
时间:2023-06-07 09:36:19

P44《Java编程思想》

关系操作符是由关系操作符生成的 boolean 因此,他们计算操作数值之间的关系。为了比较两个对象的实际内容是否相同,必须使用适用于所有对象的特殊方法 equals()。但这种方法不适用于“基本类型”,直接使用基本类型 == 和 != 即可。

通过一个例子来体验两者的区别:

Java 深入学习(16) —— equals 与 ==_操作符

equals() 默认行为是比较引用的,除非涵盖自己的新类别 equals 方法。

Java 深入学习(16) —— equals 与 ==_基本数据类型_02

覆盖了 equals() 测试结果如下:

Java 深入学习(16) —— equals 与 ==_equals_03

Java 深入学习(16) —— equals 与 ==_java_04


总结:

  1)对于 == 如果关系操作符作用于基本数据类型的变量,则直接比较其存储 “值”是否相等;

    如果作用于引用类型的变量,则比较指向对象的地址

  2)对于 equals 方法,注意: equals 该方法不能作用于基本数据类型的变量

    如果没有对 equals 重写方法时,比较引用类型变量指向的对象的地址;

    诸如 String、Date 等类对 equals 重写方法时,比较指向对象的内容。