[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-jvm-kakie-oblasti-dannykh-vremeni-vypolneniya-sushchestvuyut-v-jvm":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":17,"progress":18,"seo":19},1209,"kakie-oblasti-dannykh-vremeni-vypolneniya-sushchestvuyut-v-jvm",38,"jvm","JVM","⚙️","Какие области данных времени выполнения существуют в JVM","Области данных времени выполнения (Run-Time Data Areas) — это участки памяти, которые JVM выделяет для хранения данных во время работы программы. Одни создаются при старте JVM и существуют до её остановки, другие привязаны к потокам и уничтожаются вместе с ними.\n\n| Область | Общая \u002F per-thread | Описание |\n|---|---|---|\n| PC Register | Per-thread | Адрес текущей выполняемой инструкции JVM |\n| JVM Stack | Per-thread | Хранит фреймы вызовов методов |\n| Native Method Stack | Per-thread | Стек для native-методов (написанных не на Java) |\n| Heap | Общая | Память для всех экземпляров объектов и массивов |\n| Method Area | Общая | Метаданные классов, пул констант, код методов |\n| Run-Time Constant Pool | Общая (часть Method Area) | Константы и ссылки на методы\u002Fполя для каждого класса |\n\n### PC Register\n\nКаждый поток JVM имеет собственный регистр PC (program counter), создаваемый при запуске потока. Он хранит адрес текущей выполняемой инструкции JVM. Если метод является native, содержимое PC Register не определено.\n\n### JVM Stack\n\nКаждый поток имеет собственный стек, создаваемый одновременно с потоком. Стек хранит фреймы (frames) — по одному на каждый вызов метода. Стек может иметь фиксированный размер или динамически расширяться.\n\n### Heap\n\nКуча — единственная область, общая для всех потоков. Здесь размещаются все экземпляры классов и массивы. Куча создаётся при запуске JVM и управляется сборщиком мусора. Объекты никогда не освобождаются явно. Память кучи не обязательно должна быть непрерывной.\n\n### Method Area\n\nОбласть методов общая для всех потоков. Хранит структуры каждого класса: пул констант, данные полей и методов, код методов и конструкторов. Логически является частью кучи, но простые реализации могут не обрабатывать её сборщиком мусора.\n\n### Run-Time Constant Pool\n\nСуществует для каждого класса или интерфейса. Содержит числовые литералы (известные во время компиляции) и ссылки на методы и поля (разрешаемые во время выполнения). Создаётся JVM вместе с классом или интерфейсом и размещается в Method Area.\n\n### Native Method Stacks\n\nОбычные стеки (стеки C) для поддержки native-методов, написанных на языке, отличном от Java.\n\n> **На собеседовании:** интервьюер ожидает, что вы разделите области на per-thread (PC Register, JVM Stack, Native Method Stack) и общие (Heap, Method Area). Частая ошибка — забыть про Run-Time Constant Pool или перепутать Stack и Heap. Помните: объекты живут в Heap, локальные переменные и вызовы методов — в Stack.","","middle",[7,15,16],"memory","concurrency",[],null,{"title":20,"description":21,"ogTitle":22,"ogDescription":23,"keywords":24,"schemaAnswer":34,"featuredSnippetReady":35},"Какие области данных времени выполнения существуют в JVM — Gymterview","Run-Time Data Areas JVM: PC Register, JVM Stack, Heap, Method Area, Native Method Stack, Run-Time Constant Pool. Какие области общие, а какие per-thread.","Области данных времени выполнения JVM — Gymterview","PC Register, JVM Stack, Heap, Method Area, Constant Pool — разбираем все области памяти JVM с делением на per-thread и общие.",[25,26,27,28,29,30,31,32,33],"Run-Time Data Areas","JVM Stack","Heap","Method Area","PC Register","Constant Pool","память JVM","Java","собеседование","JVM выделяет области памяти двух типов: per-thread (PC Register — адрес текущей инструкции, JVM Stack — фреймы вызовов, Native Method Stack — стек для native-методов) и общие (Heap — объекты и массивы, Method Area — метаданные классов, Run-Time Constant Pool — константы и ссылки). Heap управляется GC, Stack имеет фиксированный или динамический размер.",true]