Com a linguagem de programação Java, você pode, por exemplo,
criar um aplicativo que rode tanto no Linux quanto no
Windows. Mas a linguagem Java não se limita a esses sistemas
operacionais. É possível desenvolver aplicações para uma
infinidade de plataformas. Para isso, basta que elas tenham uma
Java Virtual Machine (JVM) ou, em português, Máquina
Virtual Java. Este artigo é voltado a iniciantes e explica o
que esse mecanismo faz e o por quê de ser um componente tão
essencial à linguagem Java.
O que é Máquina Virtual Java
Você já deve ter usado Java antes e não sabe. Por exemplo, em uma
fila de banco, onde você fica jogando em seu telefone celular
enquanto aguarda a sua vez. Os aplicativos feitos em Java estão
presentes em uma infinidade de dispositivos, desde relógios até
mainframes. Tudo isso graças a Máquina Virtual Java (Java Virtual
Machine), que passaremos a chamar simplesmente de JVM a partir
deste ponto.
A JVM é, em poucas palavras, um mecanismo que permite executar
código em Java em qualquer plataforma. Segundo a definição da
Sun, a principal responsável pela criação da linguagem Java,
a JVM pode ser entendida como "uma máquina imaginária implementada
via software ou hardware que executa instruções vindas de
bytecodes". Os bytecodes são explicados mais à frente.
Para servir de exemplo, suponha que você desenvolveu um aplicativo
para um telefone celular. Com poucas modificações, você poderá
rodar esse mesmo aplicativo em um palmtop, como mostra a imagem
abaixo:
Outro exemplo: um fabricante de geladeiras constatou que é mais
confiável controlar a temperatura desse eletrodoméstico por
software. Assim, seus engenheiros criaram um programa para esse
fim e ele foi feito em Java. Para executá-lo, eles criaram uma
JVM para essa moderna geladeira.
Imagine agora que um fabricante de aparelhos de som desenvolveu um
software em Java para permitir que um de seus produtos fosse
compatível com músicas no formato MP3. Meses depois, a empresa
lançou um outro aparelho e aproveitou esse mesmo recurso nele. Tudo
isso, graças a JVM desenvolvida para os aparelhos.
Os exemplos acima deixam claro que praticamente todo dispositivo
pode rodar aplicações em Java. Basta que ele tenha uma JVM. A
implementação de uma JVM pode ser feita em hardware, como em chips,
ou em software, como a JVM existente para o Linux.