Встречается на собеседованиях • сегодня
Что такое 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() вернет ссылку из пула) Используется для: экономии памяти и ускорения сравнения строк (через ==).

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы