Компилятор собирает исходный код в байт -код, который затем преобразуется в машинный код с помощью JVM или компилятора JIT. Если компилятор JIT преобразует байт -код в машинный код, то нет необходимости в JVM и наоборот. Динамическое назначение объектов или инъекции зависимости осуществляется API отражения во время выполнения к ссылкам, присутствующим в байт -коде, и этот API отражения присутствует в JVM. Правильно ли я понимаю эти концепции?
Подробнее здесь: https://stackoverflow.com/questions/794 ... vm-and-jit