Основные области памяти JVM:
▪️Heap (куча)
Общая для потоков
Хранит объекты и экземпляры, управляется сборщиком мусора
▪️Method Area (область методов)
Общая для потоков
Метаданные классов, статические переменные, байткод
▪️Runtime Constant Pool (пул констант времени выполнения)
На класс, разделяется
Строковые литералы, ссылки на методы, константы
▪️JVM Stack (стек JVM)
На поток
Фреймы вызовов, локальные переменные, адреса возврата
▪️Native Stack (нативный стек)
На поток
Выполнение нативного кода через JNI
▪️Program Counter (PC регистр)
На поток
Текущая инструкция, которую выполняет поток
▪️Code Cache (кэш кода)
Общий
Машинный код после JIT-компиляции
▪️Direct Memory (off-heap)
Общая
Память вне кучи для высокопроизводительного ввода-вывода
Разбиение кучи:
▪️Eden
Новые объекты создаются здесь
▪️Survivor
Краткоживущие объекты перед продвижением
▪️Old Generation
Долгоживущие объекты
👉 Java Portal
Post #2316
1.67K

- 👍 6