《Java编程思想》P44

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

通过一个例子体会一下二者之间的区别:

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

(关于自动装箱、拆箱可以通过之前的博文http://blog.csdn.net/heatdeath/article/details/78726407进行了解)

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

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

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

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

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


总结:

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

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

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

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

    诸如 String、Date 等类对 equals 方法进行了重写的话,比较的是所指向的对象的内容。


相关文章:

  • 2021-11-05
  • 2022-12-23
  • 2021-09-26
  • 2022-01-27
  • 2021-12-02
  • 2018-02-01
  • 2021-06-10
  • 2021-08-05
猜你喜欢
  • 2021-10-31
  • 2021-07-31
  • 2021-12-07
  • 2021-11-12
  • 2022-12-23
  • 2021-11-02
  • 2022-01-14
相关资源
相似解决方案