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

时间:2017-02-18 15:58:29

标签: java equals immutability mutable

我读了那个

  

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

我知道equals和" =="之间的区别,但为什么优先使用equals作为不可变对象?以及为什么使用" =="对于可变对象?因为在我的逻辑中,当我想比较两个对象(比较状态,而不是身份)时,为什么不建议使用equals()?

1 个答案:

答案 0 :(得分:2)

equals 始终用于比较对象持有的值。它用于比较StringInteger等不可变对象或ListMap等可变对象的值。

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

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

希望这有帮助!