Sobes.tech
Back to questions
Junior — Middle
71

Объясните принцип использования StringPool и его роль в управлении строками в Java

Companies where asked
Платформа

Answer from AI

sobes.tech AI

StringPool в Java — это специальный пул строковых литералов, который хранит уникальные экземпляры строк для экономии памяти и повышения производительности.

Когда создаётся строка через литерал, JVM проверяет, есть ли такая строка в пуле. Если есть — возвращает ссылку на существующую, если нет — добавляет новую.

Это позволяет:

  • Избежать дублирования одинаковых строк в памяти.
  • Быстрее сравнивать строки по ссылке (==), если они из пула.

Пример:

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

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