La diferencia entre JDK, JRE y JVM es una de las preguntas de entrevista más populares. También podrías ser preguntado para explicar JDK vs JRE vs JVM.
Diferencia entre JDK, JRE y JVM
JDK, JRE y JVM son conceptos fundamentales del lenguaje de programación Java. No utilizamos estos conceptos en la programación. Pero, como desarrollador de Java, deberíamos saber sobre ellos.
1. JDK
El Kit de Desarrollo de Java, conocido como JDK, es el componente central del entorno Java y proporciona todas las herramientas, ejecutables y binarios necesarios para compilar, depurar y ejecutar un programa de Java. JDK es un software específico de plataforma y por eso tenemos instaladores separados para sistemas Windows, Mac y Unix. Podemos decir que el JDK es el superconjunto de JRE ya que contiene JRE con el compilador de Java, depurador y clases fundamentales.
2. JVM
JVM es el corazón del lenguaje de programación Java. Cuando ejecutamos un programa Java, JVM es responsable de convertir el código de bytes al código específico de la máquina. JVM también es dependiente de la plataforma y proporciona funciones básicas de Java como la gestión de memoria, la recolección de basura, la seguridad, etc. JVM es personalizable y podemos usar opciones de Java para personalizarlo. Por ejemplo, asignar memoria mínima y máxima a JVM. JVM se llama virtual porque proporciona una interfaz que no depende del sistema operativo subyacente y del hardware de la máquina. Esta independencia del hardware y del sistema operativo hace que el programa Java sea escribir una vez y ejecutar en cualquier lugar.
3. JRE
JRE es la implementación de JVM. Proporciona una plataforma para ejecutar programas Java. JRE consta de JVM, binarios de Java y otras clases para ejecutar cualquier programa correctamente. JRE no contiene herramientas de desarrollo como compilador Java, depurador, JShell, etc. Si solo desea ejecutar un programa Java, puede instalar solo JRE. No necesita JDK porque no se requiere desarrollo ni compilación de código fuente de Java. Ahora que tenemos una comprensión básica de JDK, JVM y JRE, veamos la diferencia entre ellos.
JDK vs JRE vs JVM
Veamos algunas de las diferencias importantes entre JDK, JRE y JVM.
- JDK se utiliza con fines de desarrollo, mientras que JRE se utiliza para ejecutar programas en Java.
- Tanto JDK como JRE contienen JVM para poder ejecutar programas en Java.
- JVM es el corazón del lenguaje de programación Java y proporciona independencia de plataforma.
Compilador Just-in-time (JIT)
A veces encontrarás JIT junto con JVM, JDK y JRE en libros de texto. JIT es parte de la JVM que optimiza el proceso de conversión de bytecode a lenguaje específico de la máquina. Compila códigos bytecode similares al mismo tiempo y reduce el tiempo total necesario para la compilación de bytecode a lenguaje específico de la máquina.
Source:
https://www.digitalocean.com/community/tutorials/difference-jdk-vs-jre-vs-jvm