Во-первых, давайте иметь четкое представление о следующих терминах
Javac
- это компилятор Java - компилирует ваш код Java в байт-код
JVM
- это виртуальная машина Java - запускает / интерпретирует / переводит байт-код в собственный машинный код
JIT
- это компилятор Just In Time - компилирует заданную последовательность инструкций байт-кода в машинный код в время выполнения перед его собственным выполнением. Его главная цель - сделать большую оптимизацию производительности.
Итак, давайте найдем ответы на ваши вопросы ..
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
в ОЗУ
- Компонент Байтовый код Verifier в JVM проверяет наличие каких-либо нарушений ограничения доступа в вашем коде. (Это одна из основных причин безопасности java)
- Затем компонент Execution Engine преобразует Байт-код в исполняемый машинный код
Надеюсь, вам это помогло ..