Sobes.tech
Back to questions
Junior — Middle
60

Что такое строковый пул и зачем он нужен при хранении строк в Java?

Answer from AI

sobes.tech AI

Строковый пул (String Pool) в Java — это специальное хранилище для строковых литералов, где хранятся уникальные экземпляры строк. Когда создаётся строка через литерал, JVM проверяет, есть ли уже такая строка в пуле. Если есть — возвращает ссылку на неё, если нет — добавляет новую.

Зачем это нужно:

  • Экономия памяти: одинаковые строки хранятся в одном экземпляре, а не дублируются.
  • Повышение производительности сравнения строк: можно сравнивать ссылки (==), а не содержимое.

Пример:

String s1 = "hello";
String s2 = "hello";
System.out.println(s1 == s2); // true, обе ссылаются на один объект в пуле

String s3 = new String("hello");
System.out.println(s1 == s3); // false, s3 — новый объект вне пула

Чтобы добавить строку в пул явно, можно вызвать метод intern() у строки.