Os fontes da linguagem Java são compilados para uma forma intermediária de código denominada bytecodes, que são interpretados pelas Máquinas Virtuais Java (JVMs). É essa característica que faz com que os os programas Java sejam independentes de plataforma, executando em qualquer sistema que possua uma JVM.