“==”的概念
“==”用來比較基本數據類型的值,或引用類型變量的哈希值
Object 的 equals()方法
實現就是調用“==”
public boolean equals(Object obj ) {
return (this == obj);
}
但有的類會重寫該方法,例如String,這是一個對象,它的equals不是用來比較地址,而是用來比較字符串的每一個字符值
public boolean equals(Object anObject ) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String) anObject;
int n = value. length;
if ( n == anotherString. value. length) {
char v1[] = value;
char v2[] = anotherString. value;
int i = 0;
while ( n-- != 0) {
if ( v1[ i] != v2[ i])
return false;
i++;
}
return true;
}
}
return false;
}
還比如,Integer等
public boolean equals(Object obj) {
if (obj instanceof Integer) {
return value == ((Integer) obj).intValue();
}
return false;
}
結論
所以“==”和equals()之間的區別就是有沒有重寫Object的equals規則嘍