JAVA認證開源技術:關於Java的對象equals方法

在學習JAVA認證過程中,每個人會遇到每個人不同的問題,或小或大,下面yjbys小編爲大家分享的是關於Java的對象equals方法,希望對大家學習JAVA有幫助!

JAVA認證開源技術:關於Java的對象equals方法

不是所有的equals都是比較整個對象的。

  #1.普通Object類:

先看源碼:

public boolean equals(Object obj) {

return (this == obj);

}

看到了沒,用"==",比較的是對象引用,也就是地址。假如兩個對象傳入的參數一樣,但是都用new去創建,地址就不同了,那麼用equals返回的'就是false.

  #ng類:

先看源碼:

public boolean equals(Object anObject) {

if (this == anObject) {

return true;

}

if (anObject instanceof String) {

String anotherString = (String)anObject;

int n = count;

if (n == t) {

char v1[] = value;

char v2[] = e;

int i = offset;

int j = et;

while (n-- != 0) {

if (v1[i++] != v2[j++])

return false;

}

return true;

}

}

return false;

}

比較的是內容,所以只要內容一樣,用new去創建的兩個String對象,調用equals返回true.

  #ger類

先看源碼:

public boolean equals(Object obj) {

if (obj instanceof Integer) {

return value == ((Integer)obj)。intValue();

}

return false;

}

一樣是比較內容。