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

Что такое String Pool в Java

String Pool — это специальная область в heap memory, где Java хранит уникальные строковые литералы для оптимизации памяти.

Особенности:

  • При создании строки через литерал (String s = "hello") JVM сначала проверяет String Pool. Если строка уже есть, возвращается ссылка на существующий объект.
  • new String("hello") создает новый объект в куче, даже если такая строка есть в пуле.
  • Метод intern() добавляет строку в пул (если её там нет) и возвращает ссылку на неё.

Пример:

java
String s1 = "Java";          // Добавляется в String Pool  
String s2 = "Java";          // Используется существующая строка из пула  
String s3 = new String("Java"); // Создается новый объект в куче  

System.out.println(s1 == s2); // true (ссылки одинаковые)  
System.out.println(s1 == s3); // false (разные объекты)  
System.out.println(s1 == s3.intern()); // true (s3.intern() вернет ссылку из пула)  

Используется для: экономии памяти и ускорения сравнения строк (через ==).

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

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

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

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