Não consegui entender a diferença entre o código fonte e o Bytecode.
Não consegui entender a diferença entre o código fonte e o Bytecode.
E aí, Juliano!
Bytecode é um código intermediário entre o código fonte e a linguagem de máquina, e é o que a JVM entende. Esses três códigos são separados basicamente dessa maneira:
Quando você escreve seu código fonte num arquivo .java
, o compilador pega esse código e cria um arquivo .class
, que nada mais é do que o bytecode gerado a partir do seu código fonte.
A partir daí a JVM pega o bytecode e faz a versão correta do seu programa para o sistema em que ela está rodando. Se roda num Windows, cria um arquivo que o Windows entende. Se roda num Mac, cria um próprio do Mac. No Linux? Mesma coisa.
Dessa maneira você escreveu apenas um código fonte que pôde ser rodado nos três sistemas citados. Bacana, né?
A JVM não entende o código fonte, portanto ela jamais conseguirá fazer nada com um arquivo .java
. Será necessário antes compilar seu código num arquivo .class
para que aí sim a JVM entenda e faça seu trabalho.
A imagem abaixo ilustra bem como o processo todo é feito.
Espero ter ajudado, bons estudos!