Diferença entre JDK, JRE e JVM

A diferença entre JDK, JRE e JVM é uma das perguntas de entrevista populares. Você também pode ser solicitado a explicar JDK vs JRE vs JVM.

Diferença entre JDK, JRE e JVM

JDK, JRE e JVM são conceitos centrais da linguagem de programação Java. Não usamos esses conceitos na programação. Mas, como desenvolvedor Java, devemos conhecê-los.

1. JDK

O Java Development Kit, também conhecido como JDK, é o componente central do ambiente Java e fornece todas as ferramentas, executáveis e binários necessários para compilar, depurar e executar um programa Java. O JDK é um software específico para plataforma e é por isso que temos instaladores separados para Windows, Mac e sistemas Unix. Podemos dizer que o JDK é o superconjunto do JRE, pois contém o JRE com o compilador Java, depurador e classes principais.

2. JVM

JVM é o coração da linguagem de programação Java. Quando executamos um programa Java, o JVM é responsável por converter o código de bytes para o código específico da máquina. O JVM também é dependente da plataforma e fornece funções principais do Java, como gerenciamento de memória, coleta de lixo, segurança, etc. O JVM é personalizável e podemos usar opções de Java para personalizá-lo. Por exemplo, alocar memória mínima e máxima para o JVM. O JVM é chamado de virtual porque ele fornece uma interface que não depende do sistema operacional subjacente e do hardware da máquina. Essa independência do hardware e do sistema operacional permite que os programas Java sejam escritos uma vez e executados em qualquer lugar.

3. JRE

O JRE é a implementação do JVM. Ele fornece uma plataforma para executar programas Java. O JRE consiste no JVM, binários Java e outras classes para executar qualquer programa com sucesso. O JRE não contém ferramentas de desenvolvimento, como compilador Java, depurador, JShell, etc. Se você apenas deseja executar um programa Java, pode instalar apenas o JRE. Você não precisa do JDK porque não é necessário desenvolver ou compilar código-fonte Java. Agora que temos uma compreensão básica do JDK, JVM e JRE, vamos analisar as diferenças entre eles.

JDK vs JRE vs JVM

Vamos analisar algumas das diferenças importantes entre JDK, JRE e JVM.

  1. O JDK é para fins de desenvolvimento, enquanto o JRE é para executar programas Java.
  2. O JDK e o JRE ambos contêm a JVM para executar nossos programas Java.
  3. A JVM é o coração da linguagem de programação Java e fornece independência de plataforma.

O Compilador Just-in-time (JIT)

Às vezes você encontrará JIT junto com a JVM, JDK e JRE nos livros didáticos. O JIT é parte da JVM que otimiza o processo de conversão de código byte para linguagem específica da máquina. Ele compila códigos byte similares ao mesmo tempo e reduz o tempo total necessário para a compilação de código byte para linguagem específica da máquina.

Source:
https://www.digitalocean.com/community/tutorials/difference-jdk-vs-jre-vs-jvm