Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Bytecode

Não consegui entender a diferença entre o código fonte e o Bytecode.

1 resposta
solução!

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:

  • Código fonte: você entende.
  • Bytecode: a JVM entende.
  • Linguagem de máquina: Os sistemas operacionais entendem.

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!