我读了那个
通常我们使用 equals()来比较不可变对象,其中 == 用于可变对象
我知道equals和" =="之间的区别,但为什么优先使用equals作为不可变对象?以及为什么使用" =="对于可变对象?因为在我的逻辑中,当我想比较两个对象(比较状态,而不是身份)时,为什么不建议使用equals()?
答案 0 :(得分:2)
equals
始终用于比较对象持有的值。它用于比较String
或Integer
等不可变对象或List
或Map
等可变对象的值。
在使用equals
比较两个对象的相等性时,不存在可变或不可变对象的问题。
另一方面,==
符号纯粹比较两个引用是相同还是指向同一个对象。
希望这有帮助!