С точки зрения непрофессионала: JDK - дедушка, JRE - отец, а JVM - их сын.
[т.е.. JDK> JRE> JVM]
JDK = JRE + Инструменты разработки / отладки
JRE = JVM + классы пакетов Java (например, util, math, lang, awt, swing и т. Д.) + Библиотеки времени выполнения.
JVM = Система загрузчика классов + область данных времени выполнения + Механизм выполнения.
Другими словами, если вы программист на Java, вам понадобится JDK в вашей системе, и этот пакет будет также включать JRE и JVM, но если вы обычный пользователь, который любит играть в онлайн-игры, то вам понадобится только JRE и этот пакет. в нем не будет JDK.
JVM:
Виртуальная машина Java (JVM) - это виртуальная машина, на которой выполняются байт-коды Java. JVM не понимает исходный код Java, поэтому вы компилируете свои файлы * .java для получения файлов * .class, которые содержат байт-коды, понятные для JVM. Это также сущность, которая позволяет Java быть «переносимым языком» (писать один раз, запускать где угодно). Действительно, существуют конкретные реализации JVM для разных систем (Windows, Linux, MacOS, см. Список википедии ...), цель состоит в том, чтобы с одинаковыми байт-кодами все они давали одинаковые результаты.
JDK и JRE
Чтобы объяснить разницу между JDK и JRE, лучше всего прочитать документацию Oracle и обратиться к диаграмме:
Java Runtime Environment (JRE)
Java Runtime Environment (JRE) предоставляет библиотеки, виртуальную машину Java и другие компоненты для запуска апплетов и приложений, написанных на языке программирования Java. Кроме того, в JRE входят две ключевые технологии развертывания: Java-плагин, который позволяет апплетам работать в популярных браузерах; и Java Web Start, который развертывает автономные приложения по сети. Это также основа для технологий в Java 2 Platform, Enterprise Edition (J2EE) для разработки и развертывания программного обеспечения для предприятий. JRE не содержит инструментов и утилит, таких как компиляторы или отладчики для разработки апплетов и приложений.
Java Development Kit (JDK)
JDK является расширенным набором JRE и содержит все, что есть в JRE, а также такие инструменты, как компиляторы и отладчики, необходимые для разработки апплетов и приложений.
Обратите внимание, что Oracle не единственный, кто предоставляет JDK.
Процесс компиляции JIT (Предоставлено документацией Oracle)
JRE > JVM">