Java Core junior
Разница между == и equals() для строк?
Ответ
== сравнивает ссылки. equals() сравнивает содержимое. Для строк, созданных литералом, == может вернуть true из-за String Pool, но полагаться на это нельзя.
Разбор: == всегда сравнивает ссылки (для строк — равенство объектов в памяти), а equals() у String переопределён для посимвольного сравнения содержимого. Дистракторы меняют роли операторов местами, выдумывают перегрузку == для String и ложно утверждают, что new String("abc") попадает в пул — на самом деле new создаёт новый объект вне пула, и == вернёт false.
Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.