Чем отличаются JDK, JRE и JVM?
- Что такое JVM?
- Что входит в JDK?
- Чем JDK отличается от JRE?
Вложенность: JVM исполняет байткод, JRE = JVM + стандартные библиотеки для запуска, JDK = JRE + инструменты разработки.
- В JDK: компилятор javac, отладчик, jar, javadoc, jshell, утилиты мониторинга
- Байткод один, а JVM своя под каждую платформу — «написано один раз, работает везде»
А ещё С Java 11 отдельную JRE не поставляют — используют JDK или собирают свой runtime через jlink
Подробно
JVM (Java Virtual Machine) — виртуальная машина, которая загружает классы, проверяет и исполняет байткод, управляет памятью и сборкой мусора, компилирует горячий код в машинный (JIT). Реализаций несколько, самая распространённая — HotSpot.
JRE (Java Runtime Environment) — всё, что нужно для запуска готовой программы: JVM плюс стандартная библиотека классов.
JDK (Java Development Kit) — набор для разработки: JRE плюс компилятор javac (исходники .java → байткод .class), упаковщик jar, javadoc, отладчик, jshell, инструменты диагностики (jcmd, jstack, jmap).
Путь программы: javac компилирует исходник в платформонезависимый байткод, а JVM конкретной ОС его исполняет. В современных версиях отдельный JRE не распространяется: ставят JDK или собирают минимальный образ среды выполнения через jlink.
Что хотят услышать
- Верная вложенность JVM ⊂ JRE ⊂ JDK.
- Что делает JVM и что добавляет JDK (компилятор).
- Путь от исходника к исполнению через байткод.
Частые ошибки
- Говорить, что JRE компилирует код.
- Путать JVM как спецификацию/реализацию с полным JDK.
Проверьте себя
Один верный вариант. Подумайте, потом откройте ответ.
Показать варианты и ответ
- ✗JDK только запускает, JRE компилирует
- ✗Это три названия одного и того же
- ✗JVM включает JRE и JDK; JDK — минимальный набор для запуска
- ✓JVM исполняет байткод; JRE — JVM с библиотеками; JDK — JRE с компилятором
Что спросят дальше
- Что такое байткод?
- Почему один байткод может запускаться на разных ОС?
Разбор темы
- Загрузка классов и class loaders
Жизненный цикл класса (loading/linking/initialization), иерархия загрузчиков с делегированием, триггеры инициализации и изоляция.
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.