JVM middle
Что такое Области памяти JVM?
Ответ
Heap — хранение объектов, управляется GC, общий для всех потоков. Stack — фрейм для каждого вызова метода (локальные переменные, ссылки, примитивы), приватный для потока. Metaspace (до Java 8 — PermGen) — метаданные классов в нативной памяти, вне Heap.
Разбор: Heap — общая для всех потоков область объектов под управлением GC; Stack — приватный для каждого потока стек фреймов с локальными переменными, ссылками и примитивами; Metaspace (в Java 8+ вместо PermGen) хранит метаданные классов в нативной памяти. Главная ловушка — путаница: Stack приватен для потока, а Heap общий (а не наоборот), и Metaspace не входит в Heap. Фреймы методов и локальные переменные живут в Stack, а не в Heap.
Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.