Java выполняет компиляцию и интерпретацию,
В Java программы не компилируются в исполняемые файлы ; они скомпилированы в байт-код (как обсуждалось ранее), который JVM (виртуальная машина Java) затем интерпретирует / выполняет во время выполнения. Исходный код Java компилируется в байт-код, когда мы используем компилятор javac. Байт-код сохраняется на диске с расширением .class .
Когда программа должна быть запущена, байт-код преобразуется , байт-код может быть преобразован с использованием компилятора JIT. В результате получается машинный код, который затем подается в память и выполняется.
Javac - это Java Compiler , который компилирует код Java в байт-код. JVM - это виртуальная машина Java, которая выполняет / интерпретирует / переводит байт-код в машинный код. В Java, хотя он считается интерпретируемым языком, он может использовать JIT (Just-in-Time) компиляцию, когда байт-код находится в JVM. JIT-компилятор считывает байт-коды во многих разделах (или полностью, редко) и динамически компилирует их в машинный код, чтобы программа могла работать быстрее, а затем кэшироваться и повторно использоваться позже без необходимости перекомпиляции. Таким образом, JIT-компиляция сочетает в себе скорость скомпилированного кода и гибкость интерпретации.
интерпретируемый язык - это тип языка программирования, для которого большинство его реализаций выполняют инструкции напрямую и свободно, без предварительной компиляции программы в инструкции машинного языка. Интерпретатор выполняет программу напрямую, переводя каждое выражение в последовательность из одной или нескольких подпрограмм, уже скомпилированных в машинный код.
A скомпилированный язык - это язык программирования, реализации которого обычно являются компиляторами (переводчиками, которые генерируют машинный код из исходного кода), а не интерпретаторами (пошаговыми исполнителями исходного кода). код, в котором не выполняется предварительный перевод)
В современных реализациях на языке программирования, таких как в Java, для платформы все более популярно предоставлять обе опции.