equals 和 == 的区别?知乎转载
作者:知乎用戶
鏈接:https://www.zhihu.com/question/26872848/answer/34364603
來源:知乎
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。
簡單易懂
Java 語言里的 equals方法其實是交給開發(fā)者去覆寫的,讓開發(fā)者自己去定義滿足什么條件的兩個Object是equal的。所以我們不能單純的說equals到底比較的是什么。你想知道一個類的equals方法是什么意思就是要去看定義。Java中默認(rèn)的 equals方法實現(xiàn)如下:public boolean equals(Object obj) {
return (this == obj);
}
而String類則覆寫了這個方法,直觀的講就是比較字符是不是都相同。public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = count;
if (n == anotherString.count) {
char v1[] = value;
char v2[] = anotherString.value;
int i = offset;
int j = anotherString.offset;
while (n– != 0) {
if (v1[i++] != v2[j++])
return false;
}
return true;
}
}
return false;
}
醍醐灌頂
https://www.zhihu.com/question/26872848
總結(jié)
以上是生活随笔為你收集整理的equals 和 == 的区别?知乎转载的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 理解 shared_ptr实现copy-
- 下一篇: 浮点运算是什么?