Definição de Java

Por Carlos E. Morimoto. Há .

O Java é uma linguagem de programação multiplataforma, com uma sintaxe até certo ponto parecida com o C++, porém com bibliotecas diferentes. Os programas em Java podem ser executados em qualquer sistema operacional, desde que o interpretador esteja instalado.

A JVM é um programa que converte o código Java em comandos que o sistema operacional possa executar. Existem máquinas virtuais para vários sistemas operacionais: o problema é que, devido ao processamento executado pela máquina virtual, o programa torna-se mais pesado do que seria caso escrito diretamente para a plataforma. Um exemplo de programa desenvolvido desta forma é o Mercury (um cliente MSN com versões para Linux e Windows, um dos primeiros a oferecer suporte a webcam e por isso bastante famoso). Embora o código fonte do programa seja relativamente simples e bem escrito, ele é bem mais pesado que outros programas similares, por causa da máquina virtual.

Explicando de forma mais elaborada, linguagens de programação "tradicionais", como o C e o C++, utilizam um compilador diferente para cada plataforma ou sistema operacional em que o programa irá rodar. O código fonte em si pode ser escrito de forma a ser facilmente portável, ou seja, rodar em diferentes versões do Unix ou em várias famílias de processadores diferentes sem muitas alterações, mas ainda assim será necessário recompilar o código fonte, gerando um binário diferente para cada caso.

Embora o trabalho inicial seja maior, a vantagem desta abordagem é que o desempenho é o melhor possível, já que sempre teremos um programa binário otimizado para a plataforma.

O Java utiliza um conceito diferente. Ao invés de gerar um binário diferente para cada plataforma, é gerado um binário que pode ser executado em qualquer plataforma, dentro de uma máquina virtual. Este binário "universal" é chamado de bytecode.

A idéia é criar aplicativos que possam ser escritos uma vez e a partir daí serem executados em qualquer plataforma, reduzindo os custos de desenvolvimento. Apenas o software da máquina virtual é que precisa ser reescrito para cada plataforma, mas isso é problema dos desenvolvedores da linguagem, não do programador.

Existe ainda a opção de abrir mão da flexibilidade do bytecode em troca de um maior desempenho, passando a compilar os programas com otimizações para uma determinada plataforma. Isso é muito útil quando o programa será executado apenas dentro de computadores de uma certa plataforma, como PCs rodando Linux, por exemplo.

No caso do Java, a máquina virtual que executa os programas é chamada de Java Virtual Machine. Muitas páginas web utilizam applets Java, por isso a maioria das pessoas acaba instalando o suporte a Java. Hoje em dia, além do Java da Sun, temos versões alternativas, como o Blackdown e o Kofee, que possuem conjuntos de recursos variados, mas são a princípio compatíveis com o código gerado para o Java da Sun.

Embora tenha ganhado relevância com o Java, este conceito não é exatamente novo. Linguagens mais antigas como o LISP e o Prolog já utilizam bytecode e máquinas virtuais.

Veja também
Console portátil apenas para jogar Pinball? Um designer imaginou como seria
Console portátil apenas para jogar Pinball? Um designer imaginou como seria
Games
Dois relógios G-Shock inspirados em League of Legends chegam ao Brasil; saiba o preço
Dois relógios G-Shock inspirados em League of Legends chegam ao Brasil; saiba o preço
Notícias
Preço dos HDs seguirá aumentando, IA tem relação com isso
Preço dos HDs seguirá aumentando, IA tem relação com isso
Hardware
Usuário cria Steam Deck caseiro usando um Ryzen 5 5600G
Usuário cria Steam Deck caseiro usando um Ryzen 5 5600G
Games
O seu está na lista? Celulares Galaxy que receberão a One UI 6.1
O seu está na lista? Celulares Galaxy que receberão a One UI 6.1
Mobile
PlayStation Portal ganha data de lançamento e preços oficiais no Brasil
PlayStation Portal ganha data de lançamento e preços oficiais no Brasil
Games
true