java中==和equals的區別
我們分別解釋兩者區別
==:
java的變數型別分為值型別和引用型別,如果比較的是值型別那麼直接比較的是值是否相等,
如果比較的是引用型別那麼比較的是記憶體地址。
equals:
equals是Object類的一個方法,如果物件沒有重寫equals方法則比較的是地址,
如果重寫了equals方法則比較的是具體的值(如String類)。
例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; }