當前位置:才華齋>IT認證>JAVA認證>

JAVA認證開源技術:關於Java的物件equals方法

JAVA認證 閱讀(1.76W)

在學習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;

}

一樣是比較內容。