1. Java requer um código executável para cada sistema operacional através de uma máquina virtual que traduz o código para as chamadas do sistema. 2. A máquina virtual Java processa o bytecode gerado pelo compilador e é parte do ambiente de execução Java. 3. O Java Development Kit inclui ferramentas como o compilador além do ambiente de execução.