Java немного отличается от других типов скомпилированных и интерпретируемых языков. Во -первых, программа Java собирается из исходного кода в промежуточный код, называемый байтовым кодом. Java Compiler выполняет эту работу, и команда Javac используется для ее вызова.
Этот байтовый код портативный и может быть запущен на любой машине, на которой установлен конкретный компьютер JVM. Теперь, JVM, когда запускается с использованием команды Java, займет строку этого байтового кода и интерпретирует ее на машинный код. Здесь JIT входит в картинку. Несмотря на то, что он может быть припущен к отключению, это очень полезная часть JRE.
Когда JVM вызывается командой Java, первое, что она делает, это загружает файлы .class во время выполнения, а затем преобразует их в понятный код машины, используя интерпретатор. Компилятор JIT при включении, делает вызовы метода анализа JVM в коде байтов, и, если он видит какой -либо повторный код, JIT собирает его для машинного кода в первый раз и заменяет все другие случаи непосредственно с помощью машинного кода, следовательно, сохраняя хорошее количество времени Анкет
Оригинал: «https://dev.to/thatanonymousgirl/how-java-program-actually-runs-what-is-just-in-time-compiler-pg5»