JDK vs JRE vs JVM:diferencias clave
¿Qué es JDK?
JDK es un entorno de desarrollo de software utilizado para crear applets y aplicaciones Java. La forma completa de JDK es Java Development Kit. Los desarrolladores de Java pueden usarlo en Windows, macOS, Solaris y Linux. JDK les ayuda a codificar y ejecutar programas Java. Es posible instalar más de una versión de JDK en la misma computadora.
En este tutorial, aprenderá:
- ¿Qué es JDK?
- ¿Qué es JRE?
- ¿Qué es JVM?
- ¿Por qué usar JDK?
- ¿Por qué usar JRE?
- ¿Por qué JVM?
- Características de JDK
- Características de JRE
- Características de JVM
- ¿Cómo funciona JDK?
- ¿Cómo funciona JRE?
- ¿Cómo funciona JVM?
- Diferencia entre JDK, JRE y JVM
¿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 la JVM. En términos simples, si desea ejecutar un programa Java, necesita JRE. Si no es programador, no necesita instalar JDK, solo JRE para ejecutar programas Java. 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 Runtime Environment.
¿Qué es JVM?
JVM es un motor que proporciona un entorno de tiempo de ejecución para impulsar el código Java o las aplicaciones. Convierte el código de bytes de Java en lenguaje de máquina. JVM es una parte de Java Run Environment (JRE). No se puede descargar e instalar por separado. Para instalar JVM, debe 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, el compilador de Java produce código para una máquina virtual que se llama JVM.
DIFERENCIAS CLAVE
- JDK es un kit de desarrollo de software, mientras que JRE es un paquete de software que permite ejecutar programas Java, mientras que JVM es un entorno para ejecutar bytecode.
- La forma completa de JDK es Java Development Kit, mientras que la forma completa de JRE es Java Runtime Environment, mientras que la forma completa de JVM es Java Virtual Machine.
- JDK depende de la plataforma, JRE también depende de la plataforma, pero JVM no es independiente 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 se incluye en el software JDK y JRE.
¿Por qué usar JDK?
Estas son las razones importantes para usar JDK:
- JDK contiene las herramientas necesarias para escribir programas Java y JRE para ejecutarlos.
- Incluye compilador, lanzador de aplicaciones Java, Appletviewer, etc.
- El compilador convierte el código escrito en Java en código de bytes.
- El lanzador de aplicaciones Java abre un JRE, carga la clase necesaria y ejecuta su método principal.
¿Por qué usar 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 el desarrollo de Java como un depurador, compilador, etc.
- Utiliza clases de paquetes importantes como matemáticas, swingetc, util, lang, awt y bibliotecas de tiempo de ejecución.
- Si tiene que ejecutar applets de Java, JRE debe estar instalado en su sistema.
¿Por qué JVM?
Estas son las razones importantes para usar JVM:
- JVM proporciona una forma independiente de la plataforma de ejecutar el código fuente de Java.
- Tiene numerosas bibliotecas, herramientas y marcos.
- Una vez que ejecuta el programa Java, puede ejecutarlo en cualquier plataforma y ahorrar mucho tiempo.
- JVM viene con el compilador JIT (Just-in-Time) que convierte el código fuente de Java en un lenguaje de máquina de bajo nivel. Por lo tanto, se ejecuta más rápido que una aplicación normal.
Características de JDK
Aquí están los características importantes de JDK:
- Le permite manejar múltiples extensiones en un solo bloque catch.
- JDK incluye todas las características que tiene JRE.
- Contiene herramientas de desarrollo como compilador, depurador, etc.
- JDK proporciona el entorno para desarrollar y ejecutar el código fuente de Java.
- Se puede instalar en los sistemas operativos Windows, Unix y Mac.
- El operador de diamante se puede usar para especificar una interfaz de tipo genérico en lugar de escribir la exacta.
Características de JRE
Aquí están los características importantes de JRE:
- Java Runtime Environment es un conjunto de herramientas con las que se ejecuta realmente la JVM.
- JRE contiene tecnología de implementación, incluidos Java Web Start y Java Plug-in.
- Los desarrolladores pueden ejecutar fácilmente el código fuente en JRE, pero no pueden escribir ni compilar el programa Java.
- Incluye bibliotecas de integración como Java Database Connectivity (JDBC), Invocación de métodos remotos (RMI), Java Naming and Directory Interface (JNDI) y más.
- JRE tiene JVM y cliente de máquina virtual Java HotSpot.
Características de JVM
Estas son las características importantes de JVM:
- Le permite ejecutar aplicaciones en un entorno de nube o en su dispositivo.
- Java Virtual Machine convierte el código de bytes en el código específico de la máquina.
- Proporciona funciones básicas de Java como administración de memoria, seguridad, recolección de elementos no utilizados y más.
- JVM ejecuta el programa mediante el uso de bibliotecas y archivos proporcionados por Java Runtime Environment.
- JDK y JRE contienen Java Virtual Machine.
- Puede ejecutar el programa Java línea por línea, por lo que también se le llama intérprete.
- JVM se puede personalizar fácilmente, 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?
Estos son los componentes importantes de JDK:
- JDK y JRE :El JDK permite a los programadores crear programas básicos de Java que pueden ejecutarse con JRE, que incluía JVM y bibliotecas de clases.
- Bibliotecas de clases: Es un grupo de bibliotecas cargables dinámicamente que el programa Java puede llamar en tiempo de ejecución.
- Compiladores: Es un programa Java que acepta archivos de texto de desarrolladores y compila en archivos de clase Java. Es la forma común de salida proporcionada por el compilador, que contiene el código de bytes de Java. En Java, el compilador principal es Javac.
- Depuradores: Debugger es un programa Java que permite a los desarrolladores probar y depurar programas Java.
- Documento Java: JavaDoc es una documentación hecha por Sun Microsystems para Java. JavaDoc se puede usar para generar documentación API en un archivo HTML desde el programa fuente
¿Cómo funciona JRE?
JRE tiene una instancia de JVM, clases de biblioteca y herramientas de desarrollo. Una vez que escribe y compila el código Java, el compilador genera un archivo de clase que tiene un 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 programa Java. JVM utiliza tres cargadores de clases denominados 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.
- Intérprete: 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 la programación para describir el período de tiempo durante el cual se ejecuta un programa en particular.
- Hardware: Una vez que compila el código nativo de Java, se ejecuta en una plataforma de hardware específica.
De esta forma, el programa Java se ejecuta en JRE.
¿Cómo funciona la JVM?
Estos son los componentes importantes de JVM:
1) Cargador de clases
El cargador de clases es un subsistema utilizado para cargar archivos de clases. Realiza tres funciones principales a saber. Carga, vinculación e inicialización.
2) Área de método
El área de método de JVM almacena la estructura de la clase como metadatos, el código para los métodos de Java 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
Las pilas del lenguaje Java almacenan variables locales y sus resultados parciales. Todos y cada uno de los subprocesos tienen su propia pila de lenguaje JVM, creada al mismo tiempo 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 de la instrucción de la máquina virtual Java, que se está ejecutando actualmente. En Java, cada subproceso tiene su registro de PC separado.
6) Pilas de métodos nativos
Las pilas de métodos nativos contienen la instrucción del código nativo que depende 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 lleva ninguna información sobre el producto probado.
8) Interfaz de método nativo
La interfaz de método nativo es un marco de programación. Permite que el código Java, que se ejecuta en una JVM, sea llamado por bibliotecas y aplicaciones nativas.
9) Bibliotecas de métodos nativos
Bibliotecas nativas es una colección de bibliotecas nativas (C, C++), que necesita 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 Development Kit. | La forma completa de JRE es Java Runtime Environment. | La forma completa de JVM es Java Virtual Machine. |
JDK es un kit de desarrollo de software para desarrollar aplicaciones en Java. | Es un paquete de software que proporciona bibliotecas de clases Java con los componentes necesarios para ejecutar código Java. | JVM ejecuta el código de bytes de Java y proporciona un entorno para ejecutarlo. |
JDK depende de la plataforma. | JRE también depende de la plataforma. | JVM depende en gran medida 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 programas Java que JRE y JVM pueden ejecutar y ejecutar. | JRE es la parte de Java que crea la JVM. | Es el componente de la plataforma Java 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. |
Java
- Java JDK, JRE y JVM
- Operadores Java
- Comentarios Java
- Declaración if...else de Java
- Java para cada bucle
- Interfaz Java
- Prueba de Java con recursos
- Anotaciones Java
- Java 10 - Bosque JDK consolidado
- Java 10 - Apretón de manos local de subprocesos
- Iniciar sesión en Java:Sugerencias clave a tener en cuenta