-3
我知道==
運算符適用於基元類型的內容比較和對象的參考比較。equals()方法和==運算符之間的關係
同樣,.equals()
對象類的方法是用於參考比較字符串和包裝類中的對象和內容比較。
但我從SCJP/OCJP注意到的以下幾點,我無法理解。我查看了網絡,發現只有==
和.equals
之間的區別,但不是如下所述的關係。
- 如果
r1==r2
爲真,那麼r1.equals(r2)
總是如此。 - 如果
r1==r2
爲false,則r1.equals(r2)
可能會返回true(或)false。 - 如果
r1.equals(r2)
爲真,那麼r1==r2
可能會返回true(或)false。 - 如果
r1.equals(r2)
爲假,那麼r1==r2
總是爲假。
你的問題是什麼? – 2015-04-04 09:32:15
語句「對象類的equals()方法是用於字符串和包裝類的對象和內容比較的參考比較」是錯誤的。有很多類將'equals()'定義爲內容的比較。它的目的是在有意義的地方聲明一個「值」平等(字符串,數字,顏色,集合,座標),並且在作者所關心的地方沒有「價值」平等的情況下默認爲對象身份。 – RealSkeptic 2015-04-04 09:57:13
@RealSkeptic語句「對象類的equals()方法用於引用比較字符串和包裝類中的對象和內容比較」是正確的。可能有其他的類,其中定義了equals(),但是對於OP所提到的是正確的 – 2015-04-04 10:16:48