it-swarm.com.ru

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

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

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

12
Happy Mittal

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

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

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

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

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

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

Проверьте:

16
YoK

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

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

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

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

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

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

8
L Fields

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

0
SARUPPYA SATPATHI

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

0
Justin Ethier

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

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

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

0
ravibhagw

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

0
Kent Murra