Java 7, 8: Пул рядків зберігається в heap і, відповідно, для пула рядків можна використовувати всю память програми
Пул Рядків (англ. string pooling) відноситься до двох видів оптимізації компілятора, повязаних з рядками: Зниження обсягу коду шляхом обєднання однакових рядків з різних модулів. Ліниві привласнення рядків з використанням лічильника посилань (copy-on-write).
String Pool Кожен char займає 2 байти. Крім цього клас String має кешований хеш, який займає ще 4 байти. Крім того, кожен обєкт має службову інформацію, яка займає 8 байт.
Пул рядків (String Pool) це безліч рядків у купи (Java Heap Memory). Ми знаємо, що String — особливий клас у java, за допомогою якого ми можемо створювати рядкові обєкти. На діаграмі нижче ми бачимо, як саме рядковий пул розташований у памяті Java Heap.