Olá pessoal, neste artigo apresentarei as etapas que compõem o processo de desenvolvimento de uma aplicação na linguagem Java. Veremos desde o ambiente de desenvolvimento de aplicações da linguagem até a execução do programa pelo usuário final, abordando as cinco fases pelas quais a aplicação passa até ser realmente executada, qe são: edição/criação, compilação, carregamento, verificação e execução.

Etapa 1: criação/edição de um programa Java

Nesta primeira fase se dá a criação ou edição de arquivos em um programa editor, onde são inseridos os códigos pelo programador, os quais são posteriormente salvos em uma unidade física de armazenamento como um programa de extensão “.java”.

O programa é criado no editor salvo com a terminação .java.

Figura 1: O programa é criado no editor salvo com a terminação .java.

Para criarmos uma aplicação em Java, é necessário que utilizemos um programa de edição conhecido como ambiente de desenvolvimento integrado, ou IDE (do inglês Integrated Development Enviroment) .

As IDE´s fornecem ferramentas que suportam o processo de desenvolvimento do software, incluindo editores para escrever e editar programas, e depuradores para localizar erros de lógica e sintaxe.

Exemplos de IDE´s: Eclipse, NetBeans, Notepad ++ e outros.

Etapa 2: compilação do programa Java em bytecodes

Supondo que em um exemplo geramos um arquivo chamado “Ola.java”, na hora da compilação, o compilador produz um arquivo “.class” chamado “Ola.class” onde contém a versão compilada. O compilador Java converte o código-fonte em bytecodes que representam tarefas a serem executadas na fase de execução, melhor detalhada na Etapa 5.

O compilador cria bytecodes que são armazenados com a extensão .class.

Figura 2: O compilador cria bytecodes que são armazenados com a extensão .class.

Os bytecodes são executados pela Java Virtual Machine (JVM) - uma parte do JDK e a base da plataforma Java.

A Máquina Virtual (Virtual Machine - VM) é um aplicativo software que simula um computador, mas oculta o sistema operacional e o hardware subjacente dos programas que interagem com ela, o que garante a possibilidade de execução de programas Java em vários sistemas operacionais distintos.

Características dos bytecodes

  • Independentes de plataforma
  • Portáveis

Etapa 3: carregando um programa na memória

A JVM armazena o programa na memória para executá-lo, efetuando o carregamento. O carregador de classe da JVM pega os arquivos “.class” que contêm os bytecodes do programa e os transfere para a memória primária.

O carregador da classe lê os bytecodes e os aloca na memória

Figura 3: O carregador da classe lê os bytecodes e os aloca na memória

Etapa 4: Verificação de bytecode

Enquanto as classes são carregadas, o verificador examina seus bytecodes para assegurar que são válidos e não violam restrições de segurança do Java.

Verificação da integridade dos bytecodes

Figura 4: Verificação da integridade dos bytecodes

Etapa 5: Execução

As JVMs executam bytecodes utilizando uma combinação de interpretação chamada compilação JIT (Just In Time) - conhecido como compilador Java HotSpot.

A JVM faz a leitura dos bytecodes e compila para uma linguagem de computador

Figura 5: A JVM faz a leitura dos bytecodes e compila para uma linguagem de computador

O Java HotSpot traduz os bytecodes para a linguagem de máquina, quando a JVM encontra novamente essas partes compiladas, o código de linguagem de máquina é executado mais rápido.

Uma explicação mais detalhada é que o programa Java passa por duas fases de compilação que são:

  • Quando o código-fonte é traduzido em bytecodes que acaba tendo uma portabilidade entre JVMs em diferentes plataformas do computador
  • E a outra é durante a execução, os bytecodes são traduzidos em linguagem de máquina para o computador real em que o programa é executado.

A partir das informações aqui expostas, podemos entender como se dá o processo de desenvolvimento de um programa em Java, desde o tempo de design até sua execução.

Fico por aqui e até a próxima.