Во-первых, давайте разберемся со следующими терминами
Javac
это Java Compiler - компилирует ваш Java-код в байт-код
JVM
виртуальная машина Java - запускает / интерпретирует / переводит байт-код в собственный машинный код
JIT
is Just In Time Compiler - компилирует заданную последовательность инструкций байт-кода в машинный код во время выполнения перед ее выполнением изначально. Его основная цель - сильно оптимизировать производительность.
Итак, давайте найдем ответы на ваши вопросы ..
1) JVM: is it a compiler or an interpreter?
- Ответ: переводчик
2) what about JIT compiler that exist inside the JVM?
- Ответ : Если вы прочитали этот ответ полностью, то, вероятно, теперь знаете его.
3) what exactly is the JVM?
- Ответ:
- JVM - это виртуальная платформа, которая находится в вашей оперативной памяти.
- Его компонент, загрузчик классов, загружает
.class
файл в ОЗУ.
- Компонент Byte code Verifier в JVM проверяет, есть ли в вашем коде какие-либо нарушения ограничения доступа. (Это одна из основных причин, почему Java безопасна)
- Затем компонент Execution Engine преобразует байт-код в исполняемый машинный код.
Надеюсь, это вам помогло ..