Пул строк
Механизм в Java и, соответственно, в Android, который оптимизирует использование строковых объектов путем их повторного использования. Когда строка создается в Java, она может быть помещена в специальный пул строк, где она может быть повторно использована другими частями программы.
Когда вы создаете строку в Java с помощью литерала (например, String s = "example";
), JVM сначала проверяет пул строк на наличие строки с таким же значением.
Если строка с таким значением уже существует в пуле строк, то новая строка не создается, а вместо этого используется ссылка на существующий объект строки из пула.
Это позволяет сократить использование памяти, поскольку одни и те же строки не создаются повторно.
intern()
и new String()
: Вы можете использовать метод intern()
, чтобы явно поместить строку в пул строк. Например, String s = new String("example").intern();
.
Метод new String()
: Если вы используете конструктор new String()
, даже если строка с таким же значением уже существует в пуле строк, будет создан новый объект строки.
Поэтому, если вы не уверены, что строка уже находится в пуле строк, безопаснее использовать литералы строк или метод intern()
.