um formato intermediário entre o código fonte e o código de máquina, gerado após a compilação de um programa escrito em linguagem java. quando uma pessoa desenvolve um código em java e o compila, é o compilador (javac) que converte o código fonte em bytecode, armazenado em arquivos .class.

o bytecode não é executado diretamente pelo processador da máquina, ele é interpretado pela JVM. sua maior vantagem é a portabilidade, já que é é independente de plataforma: pode ser executado em qualquer máquina que tenha uma JVM compatível - “escreva uma vez, rode em qualquer lugar.