Що інтерпретує JVM?

Компіляція Java Вихідний код компілюється в Байт-код JVM

Байт-код JVM

Байт-код Java є набір інструкцій віртуальної машини Java (JVM), мова, на яку компілюється Java та інший JVM-сумісний вихідний код. Кожна інструкція представлена ​​одним байтом, звідси і назва байт-код, що робить її компактною формою даних.

https://en.wikipedia.org › wiki › Java_bytecode

. Цей байт-код може бути негайно інтерпретований інтерпретатором JVM. Перекладач також відстежує, скільки виконується кожна частина байт-коду (профілювання під час виконання) і передає код, що часто виконується (гарячі точки), до точно вчасно (JIT

точно вчасно (JIT

Грубо кажучи, JIT-компіляція поєднує швидкість скомпільованого коду з гнучкістю інтерпретації, з накладними витратами інтерпретатора та додатковими накладними витратами на компіляцію та зв’язування (не лише на інтерпретацію).

https://en.wikipedia.org › wiki › Just-in-time_compilation

) компілятор.

Віртуальна машина Java (JVM). віртуальна машина, яка дозволяє комп’ютеру запускати програми Java, а також програми, написані іншими мовами, які також скомпільовані в байт-код Java. JVM деталізується специфікацією, яка формально описує, що потрібно для реалізації JVM.

Як JVM виконує цей байт-код? На всіх JVM байт-код може бути безпосередньо виконаний інтерпретатором. Інтерпретатор аналізує байт-код рядок за рядком а потім безпосередньо виконує ці інструкції.

Ну, як я вже згадував вище, Інтерпретатор у Java є комп'ютерна програма, яка допомагає перетворити оператор програми високого рівня в машинний код, що містить вихідний код, попередньо скомпільований код і сценарії. Інтерпретатор перетворює код у машинний код під час виконання програми.

Це діє як рівень абстракції між скомпільованим кодом Java і основним обладнанням та операційною системою. JVM відіграє кілька ключових ролей: Незалежність від платформи: JVM дозволяє програмам Java бути незалежними від платформи. Код Java компілюється в байт-код, який потім виконується JVM.

JVM відповідає за перетворення байт-коду в машинний код і необхідний як у JDK, так і в JRE. Він також залежить від платформи та виконує багато функцій, включаючи керування пам’яттю та безпеку.