Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Java: Java, String, equals, ==, comparison

Как безопасно сравнивать строки в Java?

Проверяет понимание разницы между сравнением строк по ссылке и по содержимому в Java, что критично для избежания логических ошибок.

Короткий ответ

В Java строки сравнивают через метод equals() для проверки содержимого, а не через оператор ==, который сравнивает ссылки. Используйте equalsIgnoreCase() для сравнения без учета регистра. Для null-безопасности применяйте Objects.equals().

Длинный ответ

Сравнение строк в Java

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

Примеры сравнения

String a = new String("hello");
String b = new String("hello");

System.out.println(a == b); // false, разные объекты
System.out.println(a.equals(b)); // true, одинаковое содержимое

String c = "hello";
String d = "hello";
System.out.println(c == d); // true, интернирование строк

Безопасное сравнение

Чтобы избежать NullPointerException, используйте Objects.equals() или вызывайте equals() на известной не-null строке:

String input = null;
if ("expected".equals(input)) { // безопасно
    // ...
}

// или
if (Objects.equals(input, "expected")) {
    // ...
}

Вывод

Всегда используйте equals() или Objects.equals() для сравнения содержимого строк в Java, чтобы избежать ошибок, связанных с ссылочным сравнением и null-значениями.

Уровень

  • Рейтинг:

    5

  • Сложность:

    2

Навыки

  • Java

    Java

Ключевые слова

#Java

#String

#equals

#==

#comparison

Подпишись на Java Developer в телеграм