Começaremos esse blog mostrando algumas vantagens de se trabalhar com a plataforma Java, suas principais características e com isso mostrar porque é uma das linguagens mais utilizadas do mundo.
Antes de qualquer coisa, vamos ver como nasceu essa tecnologia:
A plataforma Java é uma tecnologia criada pela Sun MicroSystems (que há pouco tempo foi comprada pela Oracle) que permite desenvolver aplicativos em qualquer uma das linguagens criadas para ela, sendo a Linguagem Java a linguagem padrão dessa plataforma.
A principal vantagem da plataforma é que ela não depende de um Sistema Operacional ou hardware específico, pois é executada à partir de uma máquina virtual que pode ser emulada em vários Sistemas Operacionais.
Máquina Virtual que pode ser Emulada??? Afinal de contas, o que é isso?
Primeiro vamos definir o conceito de Máquina Virtual: podemos definir máquina virtual como um software que tem toda a estrutura de uma máquina real (processador, memória, etc.), porém virtualizada, ou seja, compartilha essa estrutura com a máquina real, mas trabalha de forma independente, deixando-a em um ambiente protegido.
A plataforma Java trabalha com a sua própria máquina virtual, a famosa JVM (Java Virtual Machine) e é ela a responsável por essa portabilidade da plataforma, pois possui um conjunto de programas que permite a execução de instruções – geralmente escritas em bytecode Java.
O bytecode (explicarei na sequência detalhadamente) gerado por programas Java será interpretado pela JVM e ela fica encarregada de “traduzir” as instruções para o Sistema Operacional.
Como podemos ver na imagem acima, a JVM serve como um “tradutor” na “conversa” entre a aplicação Java e o Sistema Operacional.
A JVM gera o que??? Bytecode???
O bytecode é um arquivo compilado de uma forma intermediária, que é interpretada pela JVM. Cada opcode (referência à instrução que um determinado processador possui para conseguir realizar determinadas tarefas) tem o tamanho de um byte (daí o seu nome). Um programador Java não precisa entender — e nem tomar conhecimento — dos bytecodes Java para ser proficiente na linguagem, da mesma forma que um programador de qualquer linguagem de alto nível compilada para linguagem de máquina não precisa conhecer a linguagem de montagem do computador hospedeiro para escrever bons programas naquela linguagem.
Java e o gerenciamento de memória
Há quem diga que programas Java não são tão eficientes pelo fato de não ter acesso direto à memória, mas isso não seria uma desvantagem do Java. E vou mostrar o porque:
Desde a versão 1.2 da JRE (ambiente de execução de aplicativos Java, que será detalhado numa outra oportunidade), a implementação da JVM inclui um compilador just-in-time (JIT). Com este compilador, todo o bytecode de um programa é transformado em instruções nativas e carregado na máquina virtual em uma só operação, permitindo um ganho de desempenho muito grande em comparação com a implementação anterior, onde as instruções em bytecode eram interpretadas uma por vez. O compilador JIT pode ser projetado de acordo com a plataforma ou hardware de destino, e o código que ele gera pode ser otimizado com base na observação de padrões de comportamento dos programas. Ou seja, desde as primeiras versões já estudavam formas de resolver essa questão de desempenho e desde então isso vem só evoluindo.
Outra característica muito importante da plataforma Java é que o programador não precisa se preocupar com alocação e liberação de memória, como ocorre na programação em linguagem C, por exemplo. Desde a primeira versão, este ambiente de execução vem com uma gestão automática de memória, realizada por um algoritmo coletor de lixo conhecido como garbage collector. Isso traz uma confiabilidade maior ao aplicativo, pois livra o programador de muitos erros de programação.
Essas são as principais vantagens de se programar na plataforma Java, mas não todas. Para não deixar o post cansativo, vamos separar esse assunto em mais partes, tentando sempre explicar de uma forma mais detalhada (leia-se técnica) o funcionamento dessa rica plataforma.
Outra característica muito importante da plataforma Java é que o programador não precisa se preocupar com alocação e liberação de memória, como ocorre na programação em linguagem C, por exemplo. Desde a primeira versão, este ambiente de execução vem com uma gestão automática de memória, realizada por um algoritmo coletor de lixo conhecido como garbage collector. Isso traz uma confiabilidade maior ao aplicativo, pois livra o programador de muitos erros de programação.
Essas são as principais vantagens de se programar na plataforma Java, mas não todas. Para não deixar o post cansativo, vamos separar esse assunto em mais partes, tentando sempre explicar de uma forma mais detalhada (leia-se técnica) o funcionamento dessa rica plataforma.


20:06
Ismael Júnior
