2017-02-18 3 views
-3

Я читал, чтов Java, почему рекомендуется использовать equals() при сравнении изменяемых объектов?

обычно мы используем Equals() для сравнения неизменного объекта, где == используется для изменяемого объекта

Я знаю разницу между равными и «== », но почему предпочитают использовать равные для неизменяемых объектов? и почему использование «==» для изменяемых объектов? поскольку в моей логике, когда я хочу сравнить два объекта (сравните состояние, а не идентификатор), почему не рекомендуется использовать equals()?

+4

где вы это читаете? – ByeBye

+3

Да, это полная BS. Вы должны быть более осторожны в том, что вы читаете. Ясно, что вы * не понимаете разницу между '==' и 'equals()', если вы не видите ничего плохого в том, что вы написали. – Kayaman

+0

'==' сравнивает ** ссылки ** при использовании с объектами. Не имеет значения, является ли объект изменчивым или неизменным. –

ответ

2

equalsвсегда Используется для сравнения ценностей, принадлежащих объектам. Он используется для сравнения значений неизменяемых объектов, таких как String или Integer, или изменяемых объектов, таких как List или Map и другие.

Нет вопроса об изменяемых или неизменяемых объектах, когда дело доходит до сравнения для равенства двух объектов с использованием equals.

С другой стороны, символ == просто сравнивает, являются ли две ссылки одинаковыми или указывающими на один и тот же объект.


Надеюсь, это поможет!

Смежные вопросы