Этот вопрос проверяет понимание механизма интернирования строк и его практического применения для оптимизации памяти.
Метод intern() помещает строку в пул строк (String Pool), если её там нет, и возвращает ссылку на неё из пула. Это полезно для экономии памяти при частом использовании одинаковых строк.
Как работает:
При вызове intern() JVM проверяет, есть ли строка в пуле.
Если есть — возвращает ссылку на существующую строку.
Если нет — добавляет строку в пул и возвращает ссылку.
Пример:
String s1 = new String("hello").intern();
String s2 = "hello";
System.out.println(s1 == s2); // true (ссылки равны, т.к. s1 взята из пула)Когда использовать:
Для строк, которые часто повторяются (например, константы).
Чтобы избежать дублирования в памяти.
Ограничения:
Чрезмерное использование может увеличить нагрузку на пул.