Урок Java 349: Модель памяти Java и алгоритмы работы сборщиков мусора
Основы структуры памяти в Java
Память. Обычно память в Java делится на две большие части: стек и куча. Стек (Stack) Стековая память отвечает за хранение ссылок на объекты кучи и за хранение типов значений (также известных в Java как примитивные типы), которые содержат само значение, а не ссылку на объект из кучи. Кроме того, переменные в стеке имеют определенную видимость, также называемую областью видимости. Используются только объекты из активной области. Например, предполагая, что у нас нет никаких глобальных переменных (полей)...
Устройство памяти в Java (JMM)
Основные области памяти JVM 1) Heap (Куча) Heap — это область памяти, где размещаются все объекты и их данные (поля), созданные с помощью ключевого слова new. Сама куча управляется уже нам известным сборщиком мусора (GC). Пример: public class Main { public static void main(String[] args) { String name = new String("Hello, World!"); // Объект в Heap } } 2) Stack (Стек) Стек — область памяти, выделенная для каждого потока, где хранятся: локальные переменные метода, вызовы методов (кадры стека), примитивные типы данных и ссылки на объекты в Heap...