JDK frente a JRE frente a JVM en Java – Diferencia entre ellos

Diferencia clave entre JDK, JRE y JVM

  • JDK es un kit de desarrollo de software, mientras que JRE es un paquete de software que permite Java programa para ejecutar, mientras que JVM es un entorno para ejecutar código de bytes.
  • La forma completa de JDK es Java Kit de desarrollo, mientras que la forma completa de JRE es Java Runtime Environment, mientras que la forma completa de JVM es Java Máquina virtual.
  • JDK y JRE dependen de la plataforma, mientras que JVM es independiente de la plataforma a nivel de código de bytes, pero depende de implementaciones específicas de la plataforma.
  • JDK contiene herramientas para desarrollar, depurar, etc. JRE contiene bibliotecas de clases y otros archivos de soporte, mientras que las herramientas de desarrollo de software no están incluidas en JVM.
  • JDK viene con el instalador; por otro lado, JRE solo contiene el entorno para ejecutar el código fuente, mientras que JVM está incluido en el software JDK y JRE.

¿Qué es JDK?

JDK es un entorno de desarrollo de software utilizado para crear applets y Java aplicaciones. La forma completa de JDK es Java Kit de desarrollo. Java los desarrolladores pueden usarlo en Windows, macOS, Solarisy Linux. JDK les ayuda a codificar y ejecutar Java programas. Es posible instalar más de una versión de JDK en la misma computadora.

¿Qué es JRE?

JRE es una parte de un software que está diseñado para ejecutar otro software. Contiene las bibliotecas de clases, la clase de cargador y JVM. En términos simples, si quieres ejecutar Java programa que necesita JRE. Si no eres programador, no es necesario instalar JDK, pero solo JRE para ejecutar Java programas. Sin embargo, todas las versiones de JDK vienen con Java Runtime Environment, por lo que no necesita descargar e instalar el JRE por separado en su PC. La forma completa de JRE es Java Entorno de ejecución.

¿Qué es JVM?

JVM es un motor que proporciona un entorno de ejecución para impulsar el Java Código o aplicaciones. Se convierte Java código de bytes al lenguaje de máquina. JVM es parte de Java Entorno de ejecución (JRE). No se puede descargar e instalar por separado. Para instalar JVM, necesita instalar JRE. La forma completa de JVM es Java Virtual Machine.

En muchos otros lenguajes de programación, el compilador produce código de máquina para un sistema específico. Sin embargo, Java El compilador produce código para una máquina virtual que se llama JVM.

¿Por qué utilizar JDK?

Estas son las razones importantes para usar JDK:

  • JDK contiene las herramientas necesarias para escribir. Java programas y JRE para ejecutarlos.
  • Incluye un compilador, Java lanzador de aplicaciones, Appletviewer, etc.
  • El compilador convierte el código escrito en Java en código de bytes.
  • Java El iniciador de aplicaciones abre un JRE, carga la clase necesaria y ejecuta su método principal.

¿Por qué utilizar JRE?

Estas son las razones importantes para usar JRE:

  • JRE contiene bibliotecas de clases, JVM y otros archivos de soporte. No contiene ninguna herramienta para Java desarrollo como depurador, compilador, etc.
  • Utiliza clases de paquetes importantes como math, swingetc, util, lang, awt y bibliotecas de tiempo de ejecución.
  • si tienes que correr Java applets, entonces JRE debe estar instalado en su sistema.

¿Por qué JVM?

Estas son las razones importantes para usar JVM:

  • JVM proporciona una forma de ejecución independiente de la plataforma Java código fuente.
  • Tiene numerosas bibliotecas, herramientas y marcos.
  • Una vez que corres Java programa, puede ejecutarlo en cualquier plataforma y ahorrar mucho tiempo.
  • JVM viene con un compilador JIT (Just-in-Time) que convierte Java código fuente en lenguaje de máquina de bajo nivel. Por lo tanto, se ejecuta más rápido que una aplicación normal.

Características del JDK

Estas son las características importantes de JDK:

  • Le permite manejar múltiples extensiones en un solo bloque catch.
  • JDK incluye todas las funciones que tiene JRE.
  • Contiene herramientas de desarrollo como un compilador, depurador, etc.
  • JDK proporciona el entorno para desarrollar y ejecutar Java código fuente.
  • Se puede instalar en Windows, Sistemas operativos Unix y Mac.
  • El operador de diamante se puede utilizar para especificar una interfaz de tipo genérico en lugar de escribir la exacta.

Características de JRE

Estas son las características importantes de JRE:

  • Java Runtime Environment es un conjunto de herramientas mediante las cuales la JVM realmente se ejecuta.
  • JRE contiene tecnología de implementación, que incluye Java Inicio web y Java Enchufar.
  • Los desarrolladores pueden ejecutar fácilmente el código fuente en JRE, pero no pueden escribir ni compilar el Java .
  • Incluye bibliotecas de integración como Java Conectividad de base de datos (JDBC), invocación de método remoto (RMI), Java Interfaz de nombres y directorios (JNDI) y más.
  • JRE tiene JVM y Java Cliente de máquina virtual HotSpot.

Características de la JVM

Estas son las características importantes de JVM:

  • Le permite ejecutar aplicaciones en un entorno de nube o en su dispositivo.
  • Java La máquina virtual convierte el código de bytes al código específico de la máquina.
  • Proporciona funciones básicas de Java como administración de memoria, seguridad, recolección de basura y más.
  • JVM ejecuta el programa utilizando bibliotecas y archivos proporcionados por Java Entorno de ejecución.
  • JDK y JRE contienen Java Máquina virtual.
  • Puede ejecutar el programa Java línea por línea, por lo que también se le llama intérprete.
  • JVM es fácilmente personalizable, por ejemplo, puede asignarle memoria mínima y máxima.
  • Es independiente del hardware y del sistema operativo. Por lo tanto, puede escribir un programa Java una vez y ejecutarlo en cualquier lugar.

¿Cómo funciona JDK?

Funciones JDK
Funcionalidad JDK

Estos son los componentes importantes de JDK:

  • JDK y JRE: El JDK permite a los programadores crear núcleos Java programas que pueden ser ejecutados por JRE, que incluyen JVM y bibliotecas de clases.
  • Bibliotecas de clases: Es un grupo de bibliotecas cargables dinámicamente que Java El programa puede llamar en tiempo de ejecución.
  • Compiladores: Es un Java programa que acepta archivos de texto de los desarrolladores y los compila en Java archivo de clase. Es la forma común de salida proporcionada por el compilador, que contiene Java código de bytes. En Java, el compilador principal es Javac.
  • Depuradores: El depurador es un Java programa que permite a los desarrolladores probar y depurar Java .
  • JavaDoc: JavaDoc es documentación realizada por Sun Microsystems para el Java. JavaDoc se puede utilizar generando documentación API en un archivo HTML desde el programa fuente.

¿Cómo funciona JRE?

Funciones JRE

Funcionalidad JRE

JRE tiene una instancia de JVM, clases de biblioteca y herramientas de desarrollo. Una vez que escribes y compilas Java código, el compilador genera un archivo de clase que tiene código de bytes.

Estos son los componentes importantes de JRE:

  • Cargadores de clases: El cargador de clases carga varias clases que son necesarias para ejecutar un Java programa. JVM utiliza tres cargadores de clases llamados cargador de clases de arranque, cargador de clases de extensiones y cargador de clases del sistema.
  • Verificador de código de bytes: El verificador de código de bytes verifica el código de bytes para que el código no moleste al intérprete.
  • Interprete: Una vez que se cargan las clases y se verifica el código, el intérprete lee el código línea por línea.
  • Tiempo de ejecución: El tiempo de ejecución es un sistema utilizado principalmente en programación para describir el período de tiempo durante el cual se ejecuta un programa en particular.
  • hardware: Una vez que compilas Java código nativo, se ejecuta en una plataforma de hardware específica.

De esta manera, el Java El programa se ejecuta en JRE.

¿Cómo funciona la JVM?

Funciones de JVM

funcionalidad JVM

Estos son los componentes importantes de JVM:

1) Cargador de clases

El cargador de clases es un subsistema que se utiliza para cargar archivos de clases. Realiza tres funciones principales: carga, vinculación e inicialización.

2) Área del método

El área de métodos JVM almacena la estructura de clases como metadatos, el código para Java métodos y el grupo de tiempo de ejecución constante.

3) montón

Todos los objetos, matrices y variables de instancia se almacenan en un montón. Esta memoria se comparte entre varios subprocesos.

4) Pilas de lenguaje JVM

Java Las pilas de idiomas almacenan variables locales y sus resultados parciales. Todos y cada uno de los subprocesos tienen su propia pila de lenguaje JVM, que se crea simultáneamente a medida que se crea el subproceso. Se crea un nuevo marco cuando se invoca el método y se elimina cuando se completa el proceso de invocación del método.

5) Registros de PC

Los registros de PC almacenan la dirección del Java instrucción de máquina virtual, que se está ejecutando actualmente. En Java, cada hilo tiene su registro de PC independiente.

6) Pilas de métodos nativos

Las pilas de métodos nativos contienen instrucciones de código nativo que dependen de la biblioteca nativa. Asigna memoria en montones nativos o utiliza cualquier tipo de pila.

7) Motor de ejecución

Es un tipo de software que se utiliza para probar software, hardware o sistemas completos. El motor de ejecución de pruebas nunca contiene información sobre el producto probado.

8) Interfaz del método nativo

La interfaz del método nativo es un marco de programación. permite Java código, que se ejecuta en una JVM para llamar mediante bibliotecas y aplicaciones nativas.

9) Bibliotecas de métodos nativos

Bibliotecas Nativas es una colección de Bibliotecas Nativas (C, C++), que son necesarios para el motor de ejecución.

Diferencia entre JDK, JRE y JVM

Estas son las principales diferencias entre JDK, JRE y JVM:

JDK JRE JVM
La forma completa de JDK es Java Kit de desarrollo. La forma completa de JRE es Java Entorno de ejecución. La forma completa de JVM es Java Máquina virtual.
JDK es un kit de desarrollo de software para desarrollar aplicaciones en Java. Es un paquete de software que proporciona Java bibliotecas de clases con los componentes necesarios para ejecutar Java código. JVM se ejecuta Java código de bytes y proporciona un entorno para ejecutarlo.
JDK depende de la plataforma. JRE también depende de la plataforma. JVM es independiente de la plataforma.
Contiene herramientas para desarrollar, depurar y monitorear código Java. Contiene bibliotecas de clases y otros archivos de soporte que JVM requiere para ejecutar el programa. Las herramientas de desarrollo de software no están incluidas en JVM.
Es el superconjunto de JRE. Es el subconjunto de JDK. JVM es un subconjunto de JRE.
El JDK permite a los desarrolladores crear Java programas que pueden ser ejecutados y ejecutados por JRE y JVM. El JRE es parte de Java que crea la JVM. La altura de la cúpula es XNUMX metros, que es Java Componente de plataforma que ejecuta el código fuente.
JDK viene con el instalador. JRE solo contiene un entorno para ejecutar el código fuente. JVM incluido en el software JDK y JRE.