.equals() 和 == 差別
“==”
- 是用來判斷兩個比較物件是不是有相同的 references。
- 每一個物件都有獨立的 reference,假如 reference 不同就表示它們是不同的物件。
.equals()
- 是用來比較物件的值(儲存在 heap 上的值)。
- 可以判斷兩個有不同 references 的物件是否指向相同的值
總結:
- == 比較的是兩個對象的引用或基本數據類型的值。
- .equals() 比較的是兩個對象的內容,通常需要被覆寫,並根據自定義的邏輯進行比較。
在使用時,需要注意以下幾點:
- 對於基本數據類型,應該使用 == 來進行相等性比較。
- 對於引用類型,如果只是想比較兩個對象是否引用同一個 reference,可以使用 ==。如果需要比較兩個對象的內容的值是否相等,應該使用 .equals() 方法。
- 在使用 .equals() 方法時,需要注意處理 null 值的情況,以避免 NullPointerException。可以使用 Objects.equals() 方法(Java 7+)或自定義的邏輯來處理 null 值。
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 Sean's Blog!
評論
GiscusDisqus