A diferença entre JDK, JRE e JVM é uma das perguntas populares da entrevista. 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 básicos da linguagem de programação Java. Não usamos esses conceitos na programação. Mas, como um desenvolvedor Java, devemos conhecê-los.
JDK
Java Development Kit, também conhecido como JDK, é o componente principal do Java Environment e fornece todas as ferramentas, executáveis e binários necessários para compilar, depurar e executar um programa Java.
JDK é um software específico da plataforma e é por isso que temos instaladores separados para sistemas Windows, Mac e Unix.
Podemos dizer que JDK é o superconjunto do JRE, pois contém JRE com compilador Java, depurador e classes principais.
JVM
JVM é o coração da linguagem de programação Java. Quando executamos um programa Java, a JVM é responsável por converter o código de byte para o código específico da máquina.
JVM também depende da plataforma e fornece funções básicas de java, como gerenciamento de memória, coleta de lixo, segurança, etc.
JVM é personalizável e podemos usar opções de java para personalizá-lo. Por exemplo, alocar memória mínima e máxima para JVM.
JVM é chamado de virtual porque fornece uma interface que não depende do subjacente sistema operacional e hardware da máquina.
Essa independência do hardware e do sistema operacional faz com que o programa java escreva uma vez, execute em qualquer lugar.
JRE
JRE é o implementação de JVM. Ele fornece uma plataforma para executar programas java. O JRE consiste em JVM, binários Java e outras classes para executar qualquer programa com êxito.
O JRE não contém nenhuma ferramenta de desenvolvimento, como compilador Java, depurador, JShell, etc.
Se você deseja apenas executar um programa java, pode instalar apenas o JRE. Você não precisa do JDK porque não é necessário nenhum desenvolvimento ou compilação do código-fonte java.
Agora que temos um conhecimento básico do JDK, JVM e JRE, vamos examinar a diferença entre eles.
JDK vs JRE vs JVM
Vejamos algumas das diferenças importantes entre JDK, JRE e JVM.
- JDK é para fins de desenvolvimento enquanto JRE é para executar programas java.
- JDK e JRE contêm JVM para que possamos executar nosso programa java.
- JVM é o coração da linguagem de programação java e fornece independência de plataforma .
Just-in-time Compiler (JIT)
Às vezes, você encontrará JIT junto com JVM, JDK e JRE em livros didáticos. JIT é parte da JVM que otimiza o processo de conversão de código de byte em linguagem específica da máquina. Ele compila códigos de byte semelhantes ao mesmo tempo e reduz o tempo geral gasto para a compilação do código de byte em linguagem específica da máquina.