В Java виртуальная машина (JVM) управляет несколькими областями памяти:
- Heap (Куча): Общая область для всех потоков приложения. Здесь хранятся объекты и массивы. Размер кучи определяется настройками JVM. Именно в куче работает сборщик мусора.
- Stack (Стек): Область памяти для каждого потока. Хранит локальные переменные примитивных типов и ссылки на объекты в куче. Размер стека фиксированный или динамически изменяемый в зависимости от настроек JVM.
- Method Area (Область методов): Хранит структуры per-class (runtime constants pool, field and method data, the code for methods and constructors). В более новых версиях Java объединена с Metaspace.
- Metaspace: Непотоконезависимая область памяти, хранит метаданные классов. Размер по умолчанию не ограничен (зависит от доступной памяти).
- PC Register (Program Counter Register): Указатель на инструкцию JVM, которая выполняется в данный момент. Есть у каждого потока.
- Native Method Stack (Указатель на нативный метод стека): Для поддержки вызовов нативных (не Java) методов.
Сборщик мусора (Garbage Collector, GC) - автоматический процесс управления памятью в куче. Он освобождает память, занятую объектами, на которые нет ссылок. Это предотвращает утечки памяти.
Основные этапы работы GC:
- Marking (Пометка): GC определяет, как
В Java виртуальная машина (JVM) управляет несколькими областями памяти:
- Heap (Куча): Общая область для всех потоков приложения. Здесь хранятся объекты и массивы. Размер кучи определяется настройками JVM. Именно в куче работает сборщик мусора.
- Stack (Стек): Область памяти для каждого потока. Хранит локальные переменные примитивных типов и ссылки на объекты в куче. Размер стека фиксированный или динамически изменяемый в зависимости от настроек JVM.
- Method Area (Область методов): Хранит структуры per-class (runtime constants pool, field and method data, the code for methods and constructors). В более новых версиях Java объединена с Metaspace.
- Metaspace: Непотоконезависимая область памяти, хранит метаданные классов. Размер по умолчанию не ограничен (зависит от доступной памяти).
- PC Register (Program Counter Register): Указатель на инструкцию JVM, которая выполняется в данный момент. Есть у каждого потока.
- Native Method Stack (Указатель на нативный метод стека): Для поддержки вызовов нативных (не Java) методов.
Сборщик мусора (Garbage Collector, GC) - автоматический процесс управления памятью в куче. Он освобождает память, занятую объектами, на которые нет ссылок. Это предотвращает утечки памяти.
Основные этапы работы GC:
- Marking (Пометка): GC определяет, как