Como o Java Funciona
JVM, bytecode e o ciclo de compilação
Java é uma linguagem que compila o código-fonte para bytecode, não para código de máquina diretamente. Esse bytecode é executado pela JVM (Java Virtual Machine), que existe para Windows, Linux, macOS e outros sistemas — tornando o Java verdadeiramente portável.
Esse modelo "Write Once, Run Anywhere" foi a grande inovação dos anos 90. Você compila o arquivo .java com o comando javac, gerando um .class com bytecode. Em seguida, o comando java carrega e executa esse .class em qualquer sistema que tenha uma JVM instalada.
A JVM ainda realiza compilação JIT (Just-In-Time) em tempo de execução: os trechos mais executados do bytecode são convertidos para código de máquina nativo, dando ao Java uma performance próxima à do C++. Além disso, a JVM gerencia automaticamente a memória através do Garbage Collector.
// Arquivo: HelloWorld.java
public class HelloWorld {
public static void main(String[] args) {
// Ponto de entrada: toda aplicação Java começa aqui
System.out.println("Olá, Mundo!");
}
}
// Compilação: javac HelloWorld.java → gera HelloWorld.class
// Execução: java HelloWorld → JVM lê o bytecode
// Saída: Olá, Mundo!
// O fluxo completo:
// HelloWorld.java
// ↓ javac (compilador)
// HelloWorld.class (bytecode — portável)
// ↓ java (JVM)
// Execução na máquina realA JVM também faz Garbage Collection automático — você não precisa liberar memória manualmente como em C/C++. Isso elimina toda uma classe de bugs de vazamento de memória.