P44《Java编程思想》
关系操作符是由关系操作符生成的 boolean 因此,他们计算操作数值之间的关系。为了比较两个对象的实际内容是否相同,必须使用适用于所有对象的特殊方法 equals()。但这种方法不适用于“基本类型”,直接使用基本类型 == 和 != 即可。
通过一个例子来体验两者的区别:
equals() 默认行为是比较引用的,除非涵盖自己的新类别 equals 方法。
覆盖了 equals() 测试结果如下:
总结:
1)对于 == 如果关系操作符作用于基本数据类型的变量,则直接比较其存储 “值”是否相等;
如果作用于引用类型的变量,则比较指向对象的地址
2)对于 equals 方法,注意: equals 该方法不能作用于基本数据类型的变量
如果没有对 equals 重写方法时,比较引用类型变量指向的对象的地址;
诸如 String、Date 等类对 equals 重写方法时,比较指向对象的内容。