1.object中的equals()方法
public boolean equals(Object obj) {
return (this == obj);
}
object类是所有类的父类,equals()方法是object的方法,即是比较两个object是否为同一个对象,比较的方式是看两个对象的地址是否相同。
2.String中的equals方法
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
return (anObject instanceof String aString)
&& (!COMPACT_STRINGS || this.coder == aString.coder)
&& StringLatin1.equals(value, aString.value);
}
String类重写了父类的equals()方法,先判断是否为一个对象,若为一个对象,则为true,否则则判断类型是否相同或为子类,然后值是否相同。
3.Integer中的equals方法
public boolean equals(Object obj) {
if (obj instanceof Integer) {
return value == ((Integer)obj).intValue();
}
return false;
}
4.Double中的equals方法
public boolean equals(Object obj) {
return (obj instanceof Double)
&& (doubleToLongBits(((Double)obj).value) ==
doubleToLongBits(value));
}
对于包装类的equals方法,都是先判断该对象是否为该包装类或子类,然后在判断值是否相同。
5.自定义类的equals方法
对于自定义类的equals方法,如果equals方法没有被重写,则调用的是父类的equals方法,即判断两个类地址是否相同,自己也可以重写equals方法,自定义比较方式。