Встречается на собеседованиях • сегодня

Почему нельзя сравнивать строки через ==

В Java строки сравниваются через equals(), а не ==, потому что == сравнивает ссылки на объекты, а не их содержимое. Строки в Java — это объекты, и даже если две строки содержат одинаковый текст, они могут быть разными объектами в памяти.

Пример:

java
String s1 = new String("hello");
String s2 = new String("hello");
System.out.println(s1 == s2); // false (разные объекты)
System.out.println(s1.equals(s2)); // true (одинаковое содержимое)

Исключение — строковые литералы, так как они кэшируются в пуле строк:

java
String s3 = "hello";
String s4 = "hello";
System.out.println(s3 == s4); // true (один объект в пуле)

Всегда используйте equals() для надежного сравнения строк.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы