如何「記住」equals()和==的區別?

==是運算符code

equals()方法是Object類的方法,Object類是全部類的父類,因此,全部的對象都有equals()方法。對象

若是類沒有重寫繼承自Object的equals()方法,則代碼以下: 輸入圖片說明繼承

可見,默認的equals()方法內部是使用==運算符判斷是否equal的。圖片

Java裏的equals()方法其實是交給開發者去覆蓋重寫的,讓開發者去定義知足什麼條件的兩個Object是equal的。

例如String類重寫的equals()方法: 輸入圖片說明開發

總結:

  1. 比較對象是值變量,用==判斷相等性。 1.比較對象是引用型變量,使用==,判斷引用所指的對象是不是同一個,比較的是變量句柄地址。若是對象沒有重寫equals()方法,使用equals()方法判斷和==是同樣的,可是若是重寫了equals()方法,比較結果就和equals()具體實現相關了。
  2. 兩個String類型的變量進行比較,equals()比較的是兩個字符串對象是否包含相同的內容,==比較的是這兩個字符串是不是同一個。
  3. 字符串的比較實用equals()代替==操做符。
  4. Integer和Long等包裝類由於有緩衝機制,才保證引用一致。
相關文章
相關標籤/搜索