[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-jvm-za-chto-otvechaet-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},1207,"za-chto-otvechaet-jvm",38,"jvm","JVM","⚙️","За что отвечает JVM","JVM (Java Virtual Machine) — это виртуальная машина, предоставляющая среду выполнения для управления Java-кодом и приложениями. Она загружает, проверяет и исполняет байт-код, управляет памятью и выполняет сборку мусора.\n\n> Аналогия из жизни: JVM — это как универсальный переводчик-синхронист. Программист пишет код на Java, компилятор превращает его в байт-код (промежуточный язык), а JVM на каждой конкретной ОС переводит этот байт-код в понятные данной системе инструкции. Благодаря этому один и тот же .class файл работает на Windows, Linux и macOS.\n\n### Основные обязанности JVM\n\n- Загрузка, проверка и исполнение байт-кода\n- Предоставление среды выполнения для байт-кода\n- Управление памятью и сборка мусора (Garbage Collection)\n\nJVM является независимой оболочкой исполнения кода, благодаря которой возможен запуск на любой ОС без влияния ОС на выполняемую программу.\n\n### Типы данных JVM\n\nJVM работает с двумя категориями данных: примитивные типы (primitive types) и ссылочные типы (reference types).\n\nПримитивы: JVM по сути является 32-битной машиной. Типы `long` и `double` (64-битные) занимают две единицы памяти в локальных переменных фрейма или стеке операндов, поскольку каждая единица составляет 32 бита. Типы `boolean`, `byte`, `short` и `char` расширяются до 32-разрядных целых чисел и работают как `int`. Значение `boolean` работает как 8-битное `byte`, где 0 представляет `false`, а 1 — `true`.\n\nСсылочные типы делятся на три вида: типы классов, типы массивов и типы интерфейсов. Их значения являются ссылками на динамически создаваемые экземпляры классов, массивы или экземпляры классов, реализующих интерфейсы.\n\n> **На собеседовании:** достаточно сказать, что JVM отвечает за загрузку и исполнение байт-кода, управление памятью и GC, а также обеспечивает кроссплатформенность (Write Once, Run Anywhere). Если спрашивают глубже, упомяните, что JVM — 32-битная машина, а `long`\u002F`double` занимают два слота.","","junior",[7,15,16],"core","основы",[],null,{"title":20,"description":21,"ogTitle":20,"ogDescription":22,"keywords":23,"schemaAnswer":31,"featuredSnippetReady":32},"За что отвечает JVM — Gymterview","Узнайте, за что отвечает Java Virtual Machine: загрузка и исполнение байт-кода, управление памятью, сборка мусора, кроссплатформенность. Подготовка к собеседованию.","Что делает JVM: загрузка байт-кода, управление памятью, GC. Типы данных JVM: примитивы и ссылочные типы.",[8,24,25,26,27,28,29,30],"Java Virtual Machine","байт-код","виртуальная машина","garbage collection","кроссплатформенность","Java","собеседование","JVM (Java Virtual Machine) — виртуальная машина, предоставляющая среду выполнения для Java-кода. Загружает, проверяет и исполняет байт-код, управляет памятью и выполняет сборку мусора. Обеспечивает кроссплатформенность: один .class файл работает на любой ОС. JVM работает с примитивными и ссылочными типами данных.",true]