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

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

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

Ответ 1

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

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

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

Java-интерпретатор:

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

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

Проверьте:

Ответ 2

Проще говоря, JVM интерпретирует байт-код и интерпретатор Java интерпретирует Java. Они разные, потому что байт-код и Java - это разные языки.

Байт-код - это низкоуровневый язык, такой как машинный код. Байт-код предназначен для запуска программой, называемой интерпретатором байт-кода, также называемой виртуальной машиной. Цель байт-кода - это легко интерпретировать.

Java - это язык более высокого уровня, такой как C или Python. Эти языки также могут быть интерпретированы: вы просто пишете программу, которая может запускать свой код. Он не должен включать байт-код. Это просто, что языки более высокого уровня сложнее интерпретировать напрямую.

Java обычно "интерпретируется", сначала переводя программу Java в программу байт-кода. Затем Java Virtual Machine (JVM) запускает байт-код.

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

Вы также можете интерпретировать язык программирования без какого-либо байт-кода. Некоторые интерпретаторы BASIC просто ищут инструкции BASIC в исходном коде и выполняют их. Сначала они не делают новую программу на другом языке. Если бы вы сделали то же самое для Java, это был бы интерпретатор Java, но не JVM.

Ответ 3

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

Ответ 5

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

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

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

Ответ 6

Java-виртуальная машина - это виртуальный процессор, а java-интерпретатор java tool.thanks