Ответ
String Pool (пул строк) — это специальная область в heap памяти Java, где хранятся уникальные строковые литералы. При создании строки через двойные кавычки ("text") JVM сначала проверяет String Pool на наличие такой же строки. Если находит — возвращает ссылку на существующий объект, иначе создает новый.
Особенности:
- Экономит память, избегая дублирования.
- Работает благодаря иммутабельности строк.
String.intern()явно добавляет строку в пул (или возвращает существующую).
Пример:
String s1 = "hello"; // Создаётся в String Pool
String s2 = "hello"; // Использует существующую из пула
String s3 = new String("hello"); // Создаёт новый объект в heap
System.out.println(s1 == s2); // true (один объект)
System.out.println(s1 == s3); // false (разные объекты)
System.out.println(s1 == s3.intern()); // true (s3 добавлен в пул) Видео-ответы
▶
▶
▶
▶
▶
▶
▶
▶
▶