
Выполнение кода Java

Файл .java содержит исходный код. Теперь этот исходный код не может работать напрямую. С помощью компилятора файл .java преобразуется в байтовый код (файл .class). Для выполнения этого байт-кода нам нужна виртуальная машина Java (JVM). JVM выполняет байт-код построчно.
Из-за этого JVM Java не зависит от платформы.
Независимость от платформы
Исходный код Java компилируется компилятором Java в байт-код. Байткод не зависит от платформы. Байт-код исполняется JVM, которая доступна для разных платформ (Windows, macOS, Linux и т. д.). Таким образом, Java становится независимой от платформы, но JVM зависит от платформы. Это делает Java популярным выбором для создания кроссплатформенных приложений и веб-сервисов.

JDK (комплект для разработки Java)
JDK предоставляет инструменты, библиотеки и среду выполнения, необходимые для разработки, компиляции, отладки и запуска программ Java.
JDK включает компилятор Java, который переводит исходный код Java в байт-код.
JDK включает JRE, состоящую из JVM и набора библиотек и компонентов среды выполнения, необходимых для запуска приложений Java.
JDK включает полный набор библиотек классов, известный как стандартная библиотека Java.
JRE (среда выполнения Java)
Это пакет, который предоставляет среду только для запуска программы. JRE включает в себя JVM, которая отвечает за выполнение байт-кода Java. JVM интерпретирует и транслирует байт-код в машинный код, который может выполняться базовой операционной системой.
JRE включает средство запуска Java, отвечающее за запуск приложений Java. Он читает файлы байт-кода и инициирует JVM для выполнения программы.
JIT (как раз вовремя) Компиляция
Это метод, используемый виртуальной машиной Java (JVM) для повышения производительности выполнения байт-кода. JVM анализирует различные участки кода и отмечает наиболее часто используемые. Компилятор JIT переводит эти повторяющиеся коды в собственный машинный код как раз в тот момент, когда они нужны. Это похоже на то, как вы запоминаете и выполняете общие шаги.
Время компиляции

В Java время компиляции относится к фазе разработки, когда исходный код Java (файлы .java) преобразуется в байт-код (файлы .class) с помощью компилятора Java.
Время работы

Время выполнения Java — это то, как работает JVM.
Загрузчик классов JVM находит и загружает в память необходимые файлы классов (файлы .class). JVM выполняет проверку байт-кода, чтобы убедиться, что загруженный байт-код правильно сформирован и соответствует правилам языка Java. Механизм выполнения JVM выполняет байт-код построчно. JVM управляет выделением и освобождением памяти. JVM может использовать JIT-компиляцию для повышения производительности. JVM имеет встроенные механизмы для обработки исключений, возникающих во время выполнения программы. JVM предоставляет набор библиотек времени выполнения и API, которые позволяют программам Java получать доступ к системным ресурсам.