Java 中的 equals 方法用于比较两个对象的相等性。它逐一比较两个对象的字段,并检查它们是否相等,以确定对象内容相等性。当覆盖 equals 方法时,应遵守对称性、自反性、传递性和一致性约定。

equals 在 Java 中的用法
在 Java 中,equals 方法用于比较两个对象的相等性。它是一个通用的方法,由 Object 类定义,并由所有其他类继承。
用法
equals 方法通常用于比较两个对象的 值内容,而不是 引用相等性。它采用另一个对象作为参数并返回一个 boolean 值,指示两个对象是否相等。
立即学习“Java免费学习笔记(深入)”;
语法:
public boolean equals(Object obj)
参数
-
obj- 要比较的对象
返回值
-
true- 如果两个对象相等 -
false- 如果两个对象不相等
详细解释
当比较两个对象时,equals 方法执行以下步骤:
-
类相等性检查:首先,
equals方法检查两个对象是否为同类的实例。如果不属于同一类,则对象肯定不相等。 -
对象内容比较:如果类相等,
equals方法将比较两个对象的字段或属性。它将逐一比较相应的字段,并检查它们是否相等。 -
引用相等性(可选):某些情况下,
equals方法可能会比较对象的引用相等性。这意味着它检查两个对象是否指向同一内存位置。如果它们指向相同的内存位置,则它们被认为相等。
注意事项
-
覆盖
equals方法时,请确保遵守以下约定:-
对称性:对于任何非空引用
x和y,x.equals(y)等于y.equals(x)。 -
自反性:对于任何非空引用
x,x.equals(x)必须为true。 -
传递性:对于任何引用
x、y和z,如果x.equals(y)为true并且y.equals(z)为true,则x.equals(z)也必须为true。 -
一致性:对于任何非空引用
x和y,如果它们没有被修改,那么多次调用x.equals(y)必须始终返回相同的结果。
-
对称性:对于任何非空引用
- 为基本类型(如
int、double)定义的equals方法是最终的,不能被覆盖。











