Как правило, стековая память поступает из области стека, которая не зависит от области кучи и области перманента.
Статические переменные размещаются в куче, кроме строковых и числовых констант.
-Xmx
параметр ограничивает только молодые + старые части кучи, поскольку область perm не является ее частью.
Размер области стека устанавливается флагом -Xss
, размер области кучи устанавливается флагом -Xmx
, а размер области перманента устанавливается -XX:MaxPermSize
.
Если вы хотите погрузиться в управление внутренней памятью JVM, я рекомендую запись в блоге .