2017-02-18 15 views
-3

我读了在Java中,为什么在比较可变对象时建议使用equals()?

通常我们使用equals()方法比较不可变对象,其中==用于可变对象

我知道== equals和”之间的区别“,但为什么它优先使用等于不可变对象?以及为什么使用“==”表示可变对象?因为在我的逻辑中,当我想比较两个对象(比较状态,而不是标识)时,为什么不推荐使用equals()?

+4

你在哪里读到的? – ByeBye

+3

是的,这是完整的BS。你应该更加小心你阅读的内容。很显然,如果你没有看到你写的东西有什么问题,你就不会理解'=='和'equals()'之间的区别。 – Kayaman

+0

当与对象一起使用时,'=='比较**引用**。无论对象是可变还是不可变 –

回答

2

equals总是用于比较对象所持有的值。它用于比较不可变对象的值,例如StringInteger或可变对象,如ListMap等等。

当涉及使用equals来比较两个对象的相等性时,不存在可变或不可变对象的问题。

另一方面,==符号纯粹比较两个引用是否相同或指向相同的对象。


希望这有助于!

相关问题