Effective Java 2e, страница 43.Effective Java: • по сравнению (равно против ==)
ТЕМА: проверить, что поле аргумента совпадает соответствующее поле этого объекта.
Некоторые поля ссылок на объекты могут содержать законные основания. Чтобы избежать возможность в NullPointerException, используйте эту идиому для сравнить такие поля:
(field == null ? o.field == null : field.equals(o.field))
Эта альтернатива может быть быстрее, если поле и o.field часто идентичны:
(field == o.field || (field != null && field.equals(o.field)))
Он подразумевает, что field.equals (o.field) производит то же поведение, что и поле == o.field? Может кто-нибудь объяснить, как работает вторая альтернатива?
Если они указывают на то же место, где они находятся и тот же объект, и тот же экземпляр, чтобы они observationality равно .. – nachokk
Выражаясь несколько иначе , для любой реализации, которая соответствует равному контракту, если поле не является нулевым, поле «o.field» подразумевает 'field.equals (o.field)' –
@PatriciaShanahan == проверяет ссылочное равенство while .equa ls проверяет значение равенства, поэтому они могут быть не одинаковыми - http://stackoverflow.com/questions/513832/how-do-compare-strings-in-java – Nik