equals()
- == 是运算符,用于比较引用和比较基本数据类型时具有不同的功能:
比较基本数据类型,如果两个值相同,则结果为true。而在比较引用时,如果引用指向内存中的同一对象,结果为true - equals() 是方法 ,可以由子类重写
- == 和 equals 比较的都是地址.
java.lang.Object 中的 eqauls()
public boolean equals(Object obj) {
return (this == obj);
}
此时的 equals() 方法可以与 == 相同
java.lang.String 中的 equals()
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String aString = (String)anObject;
if (coder() == aString.coder()) {
return isLatin1() ? StringLatin1.equals(value, aString.value)
: StringUTF16.equals(value, aString.value);
}
}
return false;
}
因为继承了 Object,所以此时形参仍是 Object
java.lang.Interger
public boolean equals(Object obj) {
if (obj instanceof Integer) {
return value == ((Integer)obj).intValue();
}
return false;
}
比较两个 Integer 的值是否相等