Jvm, Jre, Jdk

Java Virtual Machine (JVM)
A Máquina Virtual Java , ou JVM, é uma simulação virtual de um computador físico. Ela executa o bytecode Java (ou compatível com Java), que vem após a compilação do código-fonte. De certa forma, a JVM atua como uma mediadora entre esse código intermediário e a máquina real. Ela opera com um conjunto unificado de instruções de bytecode que são interpretadas e traduzidas em instruções de máquina.
As JVMs estão disponíveis para diversas plataformas de hardware e software, permitindo que você execute bytecode em praticamente qualquer lugar. Um programa compilado para bytecode é quase sempre independente de plataforma.
Basicamente, quando você tem um código de linguagem JVM, precisa compilá-lo apenas uma vez, obter o bytecode e poderá executá-lo em qualquer plataforma que tenha JVM.
Hoje em dia, há uma variedade de implementações de JVM, sendo a Java HotSpot Virtual Machine a principal referência.
Kit de Desenvolvimento Java (JDK)
O Java Development Kit, ou JDK , é um pacote para desenvolver programas para a plataforma Java. Inclui o JRE para executar os programas e ferramentas para desenvolvedores: compilador Java, depurador, arquivador, gerador de documentação, etc.
Na fase de compilação, os compiladores traduzem o código-fonte salvo em arquivos .class que contêm bytecode e podem ser executados pela JVM. Observe que, se você estiver usando linguagens de programação JVM diferentes de Java, precisará baixar os compiladores separadamente, pois eles não estão incluídos no JDK.
Na prática, os programas geralmente consistem em vários arquivos .class compactados com uma ferramenta de compactação em um único arquivo Java (arquivo JAR). O JRE pode executar o programa compactado em um JAR diretamente, sem extrair os arquivos compactados. O arquivo resultante é mais conveniente para armazenar e compartilhar pela rede, pois os dados são compactados.
Ambiente de execução Java (JRE)
O Java Runtime Environment , ou JRE , é um ambiente de execução. Ele inclui os componentes necessários para executar programas JVM compilados: a própria JVM e a Biblioteca de Classes Java (JCL).
JCL é essencialmente um conjunto de bibliotecas padrão que fornecem as funcionalidades mais comuns: classes fundamentais, entrada/saída, pacote matemático, coleções, segurança, kits de ferramentas de interface de usuário e muito mais. Você pode utilizar essas bibliotecas em seus programas.
Resumo
- O JRE - Java Runtime Environment - inclui a JVM + todas bibliotecas padrão necessárias para executar nossos programas, ou seja, tem tudo que precisamos para executar programas compilados.
- A JVM - Máquina Virtual Java - é responsável simplesmente por executar o
bytecode.class gerado ao compilar nossos arquivos .java. Ou seja, é responsável por carregar o programa na memória e executar. - O JDK - Java Development Kit, inclui o JRE e ferramentas de desenvolvimento, é usado por desenvolvedores para escrever programas, tem tudo que precisamos para ler, executar, debugar em Java e compilar arquivos .java em .class. O JDK também nos permite ver o código fonte dos métodos e bibliotecas utilizados.




