Разница между интерпретатором Java и JVM

Я слышал, как люди говорили: «JVM - это обязательно интерпретатор Java, но интерпретатор Java не обязательно является JVM». Это правда?

Я имею в виду, есть ли разница между интерпретатором Java и JVM?

12
задан Peter Mortensen 26 August 2012 в 19:00
поделиться

4 ответа

Да, разница есть.

Виртуальная машина Java:

Программный «механизм выполнения», который безопасно и совместимо выполняет байтовые коды в файлах классов Java на микропроцессоре (будь то в компьютере или в другом электронном устройстве).

Интерпретатор Java:

Модуль, который поочередно декодирует и выполняет каждый оператор в некоторой части кода. Интерпретатор Java декодирует и выполняет байт-код для виртуальной машины Java.

Интерпретатор Java фактически является частью JVM. Виртуальная машина не просто выполняет байт-коды, у нее много задач. Эта полноценная среда называется JVM.

Проверка:

16
ответ дан 2 December 2019 в 06:25
поделиться

Например, код (теоретически) любого языка может быть скомпилирован до байт-кода JVM, чтобы обеспечить выполнение в этой среде. Интерпретатор Java может запускать только код Java.

0
ответ дан 2 December 2019 в 06:25
поделиться

Как я понимаю...

Интерпретатор Java выполняет строки байт-кода как команды для выполнения. Байт-код выполняется.

JVM принимает байт-код и генерирует машинный код. Байт-код компилируется в машинный код, и машинный код выполняется.

0
ответ дан 2 December 2019 в 06:25
поделиться

Вызывать JVM интерпретатором Java некорректно. JVM - это JIT-компилятор, который компилирует и запускает байтовый код. Другие языки могут быть скомпилированы в байт-код, предназначенный для JVM. Статья в Википедии с подробным описанием таких языков.

0
ответ дан 2 December 2019 в 06:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: