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