JVM middle

Структура памяти JVM: где что хранится?

Ответ

Heap: объекты, общий для всех потоков (Young=Eden+Survivor, Old). Stack: фреймы методов (на каждый поток свой, LIFO), примитивы, ссылки. Metaspace: метаданные классов, статические поля (вне Heap, в нативной памяти с Java 8). Code Cache: JIT-скомпилированный код.

Разбор: Heap общий для всех потоков и хранит объекты (Young: Eden+Survivor, Old), Stack у каждого потока свой и держит фреймы, примитивы и ссылки, Metaspace (вне Heap, в нативной памяти с Java 8) — метаданные классов, Code Cache — JIT-код. Ловушки: PermGen убран в Java 8, статика и пул строк не в Stack, а Stack не общий и не хранит объекты.

Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.

Заказать гайд Пройти тест
новые гайды и свежие вопросы с собесов — первыми в Telegram Смотреть гайды Подписаться