Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Java: string, pool, optimization

Как работает intern() для строк и когда его стоит использовать?

Этот вопрос проверяет понимание механизма интернирования строк и его практического применения для оптимизации памяти.

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

Метод intern() помещает строку в пул строк (String Pool), если её там нет, и возвращает ссылку на неё из пула. Это полезно для экономии памяти при частом использовании одинаковых строк.


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

Как работает:

  • При вызове intern() JVM проверяет, есть ли строка в пуле.

  • Если есть — возвращает ссылку на существующую строку.

  • Если нет — добавляет строку в пул и возвращает ссылку.

Пример:

String s1 = new String("hello").intern();
String s2 = "hello";
System.out.println(s1 == s2); // true (ссылки равны, т.к. s1 взята из пула)

Когда использовать:

  • Для строк, которые часто повторяются (например, константы).

  • Чтобы избежать дублирования в памяти.

Ограничения:

  • Чрезмерное использование может увеличить нагрузку на пул.

Уровень

  • Рейтинг:

    2

  • Сложность:

    6

Навыки

  • Java

    Java

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

#string

#pool

#optimization

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