Каждый компетентный Java-программист знает, что вам нужно использовать String.equals () для сравнения строки, а не ==, потому что == проверяет равенство ссылок.
Когда я имею дело со строками, большую часть времени я проверяю равенство значений, а не ссылочное равенство. Мне кажется, что было бы более интуитивно понятно, если бы язык позволял сравнивать строковые значения, просто используя ==.
Для сравнения, оператор C # == проверяет равенство значений для строки s. И если вам действительно нужно проверить равенство ссылок, вы можете использовать String.ReferenceEquals.
Другим важным моментом является то, что строки являются неизменяемыми, поэтому использование этой функции не повредит.
Есть ли какая-то конкретная причина, почему это не реализовано в Java?
==
оператор отображается только в том Equals
случае, если ==
оператор был реализован таким образом. Поведение по умолчанию для ==
такое же, как ReferenceEquals
(на самом деле, ReferenceEquals
определяется как объектная версия ==
)
==
есть равенство объектов и равенствоeq
ссылок ( ofps.oreilly.com/titles/9780596155957/… ).