В текущей реализации Sun / Oracle встроенные строки будут находиться в постоянной генерации кучи Java вместе с данными классов. Нет отдельной области памяти для строк.
Максимальный размер этой области настраивается с помощью параметра командной строки (-XX:MaxPermGen
или что-то).
Обычно concat
создает новый объект String
, выделенный как любой другой.
Если PermGen заполнится, вы получите OutOfMemoryError
. GC обычно работает на PermGen, но реже.
Все это может быть изменено между реализациями и версиями.