Память приложения в Java
Память в Java состоит из следующих областей:
Metaspace – в нее загружаются статические данные, метаданные, описания объектов.
Stack – область памяти в которую сохраняется в очередности запуска информация по выполняемому методу, его примитивным переменным, ссылкам на переменные. На каждый поток создается отдельный стек.
Heap – хранит объекты на которые ссылается Stack и небольшой объем технической информации не регламентируемый спецификациями. Одна на все потоки.
В Java реализована сборка мусора по поколениям. В области памяти молодого поколения она проходит часто, в старом поколении реже. Сделано для того чтобы минимизировать приостановку JVM на время сборки мусора.