2017-02-18 16 views
-3

我讀了在Java中,爲什麼在比較可變對象時建議使用equals()?

通常我們使用equals()方法比較不可變對象,其中==用於可變對象

我知道== equals和」之間的區別「,但爲什麼它優先使用等於不可變對象?以及爲什麼使用「==」表示可變對象?因爲在我的邏輯中,當我想比較兩個對象(比較狀態,而不是標識)時,爲什麼不推薦使用equals()?

+4

你在哪裏讀到的? – ByeBye

+3

是的,這是完整的BS。你應該更加小心你閱讀的內容。很顯然,如果你沒有看到你寫的東西有什麼問題,你就不會理解'=='和'equals()'之間的區別。 – Kayaman

+0

當與對象一起使用時,'=='比較**引用**。無論對象是可變還是不可變 –

回答

2

equals總是用於比較對象所持有的值。它用於比較不可變對象的值,例如StringInteger或可變對象,如ListMap等等。

當涉及使用equals來比較兩個對象的相等性時,不存在可變或不可變對象的問題。

另一方面,==符號純粹比較兩個引用是否相同或指向相同的對象。


希望這有助於!

相關問題