Quando a JVM gera o arquivo .class após a compilação, quem interpreta esse arquivo ainda é a JVM ou se trata de um trabalho do sistema operacional da máquina?
Eu posso dizer que a interpretação do bytecode é a transpilação do byte code para o código de máquina?
Não é a JVM que gera o .class
, quem faz isso é o compilador (javac
). O arquivo .class
contém o chamado bytecode (código intermediário, que a JVM entende).
A JVM interpreta o .class
, mas ela também pode compilá-lo sob demanda, usando o Jitter (just in time compiler), que transforma as instruções em bytecode para código de máquina. Sim, a JVM tem outro compilador, que é diferente do javac
(o javac
transforma o código fonte em bytecode - o arquivo .class
- e o JIT transforma o bytecode em código de máquina).
Para mais detalhes: https://www.baeldung.com/graal-java-jit-compiler
3 curtidas