Понимание Java: JDK, JRE и JVM — подробное объяснение
Java JDK, JRE и JVM
В этом уроке вы узнаете о JDK, JRE и JVM, а также о ключевых различиях между ними.
Что такое JVM?
JVM (Java Virtual Machine) — это абстрактная машина, которая позволяет вашему компьютеру запускать Java-программы.
Когда вы запускаете Java-программу, Java-компилятор сначала компилирует ваш Java-код в байт-код. Затем JVM преобразует байт-код в нативный машинный код — набор инструкций, которые процессор компьютера выполняет напрямую.
Java — платформонезависимый язык. Это потому, что Java-код компилируется для JVM, а не для конкретной физической машины. Поскольку JVM выполняет платформонезависимый байт-код, Java работает одинаково на разных операционных системах.

Хотите глубже? Архитектура JVM подробно.
Что такое JRE?
JRE (Java Runtime Environment) — это программный пакет, объединяющий библиотеки классов Java, JVM и другие компоненты, необходимые для запуска Java-приложений.
Фактически, JRE — это надмножество JVM: оно включает всё, что нужно JVM, плюс библиотеки времени выполнения.

Если вам нужно только запускать Java-программы, но не разрабатывать их, JRE достаточно. Скачать его можно на странице Java SE Runtime Environment 8 Downloads.
Что такое JDK?
JDK (Java Development Kit) — это полный набор инструментов, необходимый для разработки Java-приложений. При установке JDK автоматически устанавливается и JRE.
Помимо JRE, JDK включает важные инструменты разработки: компилятор Java (javac), JavaDoc, Java-отладчик и многое другое.

Готовы к кодингу? Скачайте JDK и начните создавать свои Java-проекты.
Взаимосвязь JVM, JRE и JDK

java
- Переменные и литералы в Java: подробное руководство
- Ввод и вывод в Java: печать, чтение и форматирование данных
- Понимание выражений, операторов и блоков в Java
- Классы и объекты в Java: практическое руководство
- Абстрактные классы и методы в Java: полное руководство
- Вложенные и внутренние классы в Java: типы, примеры и лучшие практики
- Java throw vs throws: мастерство обработки исключений с практическими примерами
- Освоение Java Autoboxing и Unboxing: практические примеры и лучшие практики
- Замена строк в Java: replace(), replaceAll() и replaceFirst() подробно
- Java String toLowerCase() и toUpperCase(): преобразование регистра с учётом локали