JDK vs JRE vs JVM:principais diferenças
O que é JDK?
JDK é um ambiente de desenvolvimento de software usado para fazer applets e aplicativos Java. A forma completa do JDK é o Java Development Kit. Os desenvolvedores Java podem usá-lo no Windows, macOS, Solaris e Linux. O JDK os ajuda a codificar e executar programas Java. É possível instalar mais de uma versão do JDK no mesmo computador.
Neste tutorial, você aprenderá:
- O que é JDK?
- O que é JRE?
- O que é JVM?
- Por que usar o JDK?
- Por que usar JRE?
- Por que JVM?
- Recursos do JDK
- Recursos do JRE
- Recursos da JVM
- Como o JDK funciona?
- Como o JRE funciona?
- Como a JVM funciona?
- Diferença entre JDK, JRE e JVM
O que é JRE?
JRE é um pedaço de um software que é projetado para executar outro software. Ele contém as bibliotecas de classes, a classe do carregador e a JVM. Em termos simples, se você deseja executar o programa Java, precisa do JRE. Se você não é um programador, não precisa instalar o JDK, mas apenas o JRE para executar programas Java. No entanto, todas as versões do JDK vêm com o Java Runtime Environment, portanto, você não precisa baixar e instalar o JRE separadamente em seu PC. A forma completa do JRE é o Java Runtime Environment.
O que é JVM?
JVM é um mecanismo que fornece um ambiente de tempo de execução para conduzir o código Java ou aplicativos. Ele converte bytecode Java em linguagem de máquina. A JVM faz parte do Java Run Environment (JRE). Ele não pode ser baixado e instalado separadamente. Para instalar o JVM, você precisa instalar o JRE. A forma completa de JVM é Java Virtual Machine.
Em muitas outras linguagens de programação, o compilador produz código de máquina para um sistema específico. No entanto, o compilador Java produz código para uma máquina virtual que é chamada de JVM.
DIFERENÇAS PRINCIPAIS
- JDK é um kit de desenvolvimento de software, enquanto JRE é um pacote de software que permite a execução de programas Java, enquanto JVM é um ambiente para execução de bytecode.
- A forma completa de JDK é Java Development Kit, enquanto a forma completa de JRE é Java Runtime Environment, enquanto a forma completa de JVM é Java Virtual Machine.
- JDK é dependente de plataforma, JRE também é dependente de plataforma, mas JVM não é independente de plataforma.
- JDK contém ferramentas para desenvolvimento, depuração, etc. JRE contém bibliotecas de classes e outros arquivos de suporte, enquanto as ferramentas de desenvolvimento de software não estão incluídas na JVM.
- O JDK vem com o instalador, por outro lado, o JRE contém apenas o ambiente para executar o código-fonte, enquanto o JVM é fornecido no software JDK e JRE.
Por que usar o JDK?
Aqui estão as razões importantes para usar o JDK:
- JDK contém ferramentas necessárias para escrever programas Java e JRE para executá-los.
- Inclui um compilador, lançador de aplicativos Java, Appletviewer, etc.
- O compilador converte código escrito em Java em código de byte.
- O iniciador de aplicativos Java abre um JRE, carrega a classe necessária e executa seu método principal.
Por que usar JRE?
Aqui estão as razões importantes para usar o JRE:
- JRE contém bibliotecas de classes, JVM e outros arquivos de suporte. Não contém nenhuma ferramenta para desenvolvimento Java como depurador, compilador, etc.
- Ele usa classes de pacotes importantes como math, swingetc, util, lang, awt e bibliotecas de tempo de execução.
- Se você precisar executar applets Java, o JRE deverá ser instalado em seu sistema.
Por que JVM?
Aqui estão as razões importantes para usar a JVM:
- A JVM fornece uma maneira independente de plataforma de execução do código-fonte Java.
- Tem várias bibliotecas, ferramentas e frameworks.
- Depois de executar o programa Java, você pode executá-lo em qualquer plataforma e economizar muito tempo.
- JVM vem com compilador JIT (Just-in-Time) que converte o código-fonte Java em linguagem de máquina de baixo nível. Portanto, ele é executado mais rápido como um aplicativo comum.
Recursos do JDK
Aqui estão os recursos importantes do JDK:
- Permite que você lide com várias extensões em um único bloco catch.
- O JDK inclui todos os recursos do JRE.
- Ele contém ferramentas de desenvolvimento, como compilador, depurador, etc.
- JDK fornece o ambiente para desenvolver e executar código-fonte Java.
- Ele pode ser instalado nos sistemas operacionais Windows, Unix e Mac.
- O operador diamante pode ser usado para especificar uma interface de tipo genérico em vez de escrever a exata.
Recursos do JRE
Aqui estão os recursos importantes do JRE:
- O Java Runtime Environment é um conjunto de ferramentas que a JVM realmente executa.
- JRE contém tecnologia de implantação, incluindo Java Web Start e Java Plug-in.
- Os desenvolvedores podem executar facilmente o código-fonte no JRE, mas não podem escrever e compilar o programa Java.
- Inclui bibliotecas de integração como Java Database Connectivity (JDBC), Remote Method Invocation (RMI), Java Naming and Directory Interface (JNDI) e muito mais.
- JRE tem cliente de máquina virtual JVM e Java HotSpot.
Recursos da JVM
Aqui estão os recursos importantes da JVM:
- Permite que você execute aplicativos em um ambiente de nuvem ou em seu dispositivo.
- Java Virtual Machine converte o código de byte no código específico da máquina.
- Ele fornece funções Java básicas, como gerenciamento de memória, segurança, coleta de lixo e muito mais.
- A JVM executa o programa usando bibliotecas e arquivos fornecidos pelo Java Runtime Environment.
- JDK e JRE contêm Java Virtual Machine.
- Ele pode executar o programa java linha por linha, portanto, também é chamado de interpretador.
- JVM é facilmente personalizável, por exemplo, você pode alocar memória mínima e máxima para ela.
- É independente do hardware e do sistema operacional. Assim, você pode escrever um programa Java uma vez e executá-lo em qualquer lugar.
Como o JDK funciona?
Aqui estão os componentes importantes do JDK:
- JDK e JRE :o JDK permite que os programadores criem programas Java principais que podem ser executados pelo JRE, que inclui JVM e bibliotecas de classes.
- Bibliotecas de classe: É um grupo de bibliotecas carregáveis dinamicamente que o programa Java pode chamar em tempo de execução.
- Compiladores: É um programa Java que aceita arquivo de texto de desenvolvedores e compila em arquivo de classe Java. É a forma comum de saída fornecida pelo compilador, que contém código de byte Java. Em Java, o compilador principal é Javac.
- Depuradores: O Debugger é um programa Java que permite aos desenvolvedores testar e depurar programas Java.
- JavaDoc: JavaDoc é a documentação feita pela Sun Microsystems para o Java. JavaDoc pode ser usado gerando documentação de API em arquivo HTML a partir do programa fonte
Como o JRE funciona?
O JRE tem uma instância de JVM com ele, classes de biblioteca e ferramentas de desenvolvimento. Depois de escrever e compilar o código Java, o compilador gera um arquivo de classe com código de byte.
Aqui estão os componentes importantes do JRE:
- Carregadores de classe: O carregador de classes carrega várias classes que são necessárias para executar um programa Java. A JVM usa três carregadores de classes chamados carregador de classes bootstrap, carregador de classes de extensões e carregador de classes do sistema.
- Verificador de código de bytes: O verificador de código de byte verifica o bytecode para que o código não perturbe o interpretador.
- Intérprete: Depois que as classes são carregadas e o código é verificado, o interpretador lê o código linha por linha.
- Tempo de execução: Run-time é um sistema usado principalmente em programação para descrever o período de tempo durante o qual um determinado programa está sendo executado.
- Hardware: Depois de compilar o código nativo Java, ele é executado em uma plataforma de hardware específica.
Dessa forma, o programa Java é executado em JRE.
Como a JVM funciona?
Aqui estão os componentes importantes da JVM:
1) Carregador de classe
O carregador de classes é um subsistema usado para carregar arquivos de classe. Ele executa três funções principais viz. Carregando, Vinculando e Inicializando.
2) Área de Método
A JVM Method Area armazena a estrutura da classe como metadados, o código para métodos Java e o conjunto de tempo de execução constante.
3) Pilha
Todos os objetos, arrays e variáveis de instância são armazenados em um heap. Essa memória é compartilhada em vários threads.
4) Pilhas de linguagem JVM
As pilhas da linguagem Java armazenam variáveis locais e seus resultados parciais. Cada encadeamento tem sua própria pilha de linguagem JVM, criada simultaneamente à medida que o encadeamento é criado. Um novo quadro é criado quando o método é invocado e é removido quando o processo de invocação do método é concluído.
5) Registros de PC
Os registradores do PC armazenam o endereço da instrução da máquina virtual Java, que está em execução no momento. Em Java, cada thread tem seu registrador PC separado.
6) Pilhas de métodos nativos
As pilhas de métodos nativos mantêm a instrução do código nativo dependendo da biblioteca nativa. Ele aloca memória em heaps nativos ou usa qualquer tipo de pilha.
7) Mecanismo de execução
É um tipo de software usado para testar software, hardware ou sistemas completos. O mecanismo de execução de teste nunca carrega nenhuma informação sobre o produto testado.
8) Interface de método nativo
A Interface de Método Nativo é uma estrutura de programação. Ele permite que o código Java, que está sendo executado em uma JVM, seja chamado por bibliotecas e aplicativos nativos.
9) Bibliotecas de métodos nativos
Bibliotecas nativas é uma coleção de bibliotecas nativas (C, C++), que são necessárias para o mecanismo de execução.
Diferença entre JDK, JRE e JVM
Aqui estão as principais diferenças entre JDK vs. JRE vs. JVM:
JDK | JRE | JVM |
---|---|---|
A forma completa do JDK é o Java Development Kit. | A forma completa do JRE é Java Runtime Environment. | A forma completa de JVM é Java Virtual Machine. |
JDK é um kit de desenvolvimento de software para desenvolver aplicativos em Java. | É um pacote de software que fornece bibliotecas de classes Java com os componentes necessários para executar o código Java. | JVM executa código de byte Java e fornece um ambiente para executá-lo. |
JDK depende da plataforma. | O JRE também depende da plataforma. | JVM é altamente dependente da plataforma. |
Ele contém ferramentas para desenvolver, depurar e monitorar código Java. | Ele contém bibliotecas de classes e outros arquivos de suporte que a JVM requer para executar o programa. | As ferramentas de desenvolvimento de software não estão incluídas na JVM. |
É o superconjunto do JRE | É o subconjunto do JDK. | JVM é um subconjunto de JRE. |
O JDK permite que os desenvolvedores criem programas Java que podem ser executados e executados pelo JRE e JVM. | O JRE é a parte do Java que cria a JVM. | É o componente da plataforma Java que executa o código-fonte. |
JDK vem com o instalador. | JRE contém apenas ambiente para executar código-fonte. | JVM empacotado no software JDK e JRE. |
Java