Java: Compilação de classes Java – Parte II
Pessoal, dando seguimento ao artigo anterior (Java: Compilação de classes Java – Parte I), vamos ver uma visão geral na compilação de classes na linguagem Java.
Na tecnologia Java, temos três entidades:
- Morpheu (JDK);
- Neo (JRE); e
- Trinity (JVM).
Como essas entidades trabalham?
Teoria
Resumidamente:
- Temos uma fase de compilação, onde:
- Compilamos nossas classes Java (arquivos de extensão .java) com um compilador que vem junto com um JDK (o Morpheu), o kit de desenvolvimento Java;
- As classes então são transformadas em bytecode (arquivos de extensão .class) pelo compilador;
- Importante dizer que o bytecode é único, ou seja, não está em linguagem de máquina específica de uma plataforma;
- E temos também uma fase de interpretação e execução, onde:
- No cliente, onde nossa aplicação irá rodar, temos um JRE (Neo), o ambiente de execução Java, para o tipo de plataforma do cliente;
- Junto com o Neo, vem quem? A Trinity, ou seja, a JMV, a máquina virtual Java (JVM);
- Ela interpretará e executará o bytecode;
- Para cada plataforma onde iremos rodar nossa aplicação, teremos um casal Neo e Trinity, ou seja, JRE e JVM.
Não precisamos recompilar a aplicação para que possamos rodá-la em plataformas diferentes. Compilamos uma vez nossas classes para termos um único conjunto de bytecode e cada JVM para uma plataforma saberá interpretar e executar esse conjunto na plataforma específica.
Assim, meus amigos, a tecnologia Java nos oferece a portabilidade! Escreva sua aplicação apenas uma vez e execute-a em qualquer lugar!
O JRE ou ambiente de execução Java possui:
- A JVM; e
- API (Java Application Programming Interface):
- É uma biblioteca de componentes que:
- Possui vários recursos úteis; e
- É utilizada para execução de aplicações Java.
- É uma biblioteca de componentes que:
É necessário instalar uma JRE específica de uma plataforma, pois junto com ela vem uma JVM que:
- Saberá lidar com essa plataforma; e
- Conseguirá executar aplicações Java naquele ambiente.
Visualmente, temos:
- Na camada mais baixa, temos o hardware;
- Na camada mais acima, temos a plataforma Java ou o JRE (o Neo);
- Junto com o JRE vem a JVM (a Trinity) e a API Java; e
- Na camada mais acima, temos a nossa aplicação Java.
A máquina virtual Java é o coração de toda essa ideia de portabilidade! Ela é responsável por interpretar e executar o bytecode. É a provedora de formas e meios de o aplicativo conversar com o sistema operacional.
Questões
[FGV 2012 Senado Federal – Prova anulada – Análise de Sistemas – Questão 55] Observe a figura abaixo, associada à linguagem Java.
[FGV 2012 Senado Federal – Prova anulada – Análise de Sistemas – Questão 55] Para permitir que um mesmo programa seja executado em vários sistemas operacionais, a plataforma java gera códigos genéricos *.class e os traduz para o código da máquina local, *.exe ou *.bin, somente no momento da execução. Nesse contexto, os códigos específicos para a máquina virtual Java, e não para a máquina local, recebe o nome de:
- [A] microcode.
- [B] scriptcode.
- [C] framecode.
- [D] bytecode.
- [E] javacode.
Gabarito: letra D.
[FCC 2010 TRT 9ª Região – Técnico Judiciário – Especialidade Tecnologia da Informação – Questão 36] O JVM mais o núcleo de classes da plataforma Java e os arquivos de suporte formam o
- [A] o J2EE.
- [B] o JDK.
- [C] o JRE.
- [D] uma JSP.
- [E] uma API.
Gabarito: letra C.
A Trinity sempre vem com o Neo! =D
[FCC 2007 TJ/PE – Analista Judiciário – Analista de Suporte – Questão 25] O código Java compilado é gerado em arquivo com extensão
- [A] .ser
- [B] .jar
- [C] .java
- [D] .html
- [E] .class
Gabarito: letra E.
O compilador vem com o Morpheu! =D
A fuga do Batman e Robin em várias perspectivas!
[]s e até a próxima!
_________________________
Rogério Araújo
Blog: https://rogerioaraujo.wordpress.com/
Gmail: rgildoaraujo@gmail.com
Twitter: http://twitter.com/rgildoaraujo
LinkedIn: http://br.linkedin.com/in/rgildoaraujo
Grupo de estudo no ITnerante: http://www.itnerante.com.br/group/dev
Perfeito!!!
Muito bem explicado.
Obrigado.
Excelente explicação, mas fiquei com uma dúvida: quando realizo a instalação do JDK, juntamente com ele vem o JRE e junto com o JRE a JVM?
Exatamente, Mocelin! 🙂
Com a instalação do JDK, o JRE e a JVM dentro deste vêm juntos.