Saltar al contenido

¿Qué es una máquina virtual en Java?

que es la maquina virtual en Java

¿Quieres saber que es una máquina virtual de Java?

La JVM (Java Virtual Machine) gestiona la memoria del sistema y proporciona un entorno de ejecución portátil para aplicaciones basadas en Java.

La Máquina Virtual en Java es un programa cuyo propósito es ejecutar otros programas.

Por cierto, si quieres descargar la máquina virtual Java, haz click en el siguiente enlace.

La JVM cambió el status quo de su época y continúa apoyando la innovación de programación en la actualidad.

Para qué se utiliza la JVM

La máquina virtual en Java tiene dos funciones principales:

  1. permitir que los programas Java se ejecuten en cualquier dispositivo o sistema operativo (conocido como el principio Escribir una vez, ejecutar en cualquier lugar)
  2. administrar y optimizar la memoria del programa.

Cuando se lanzó Java en 1995, todos los programas de computadora se escribían para un sistema operativo específico y el desarrollador de software administraba la memoria del programa.

Entonces la JVM fue una novedad revolucionaria.

Definición técnica

Tener una definición técnica para la JVM es útil, y también existe una forma cotidiana en que los desarrolladores de software piensan en ello.

Analicemos:

  • Definición técnica: la JVM (máquina virtual en java) es la especificación de un programa de software que ejecuta código y proporciona el entorno de ejecución para ese código.
  • Definición cotidiana: La JVM es la forma en que ejecutamos nuestros programas Java. Configuramos la JVM y luego confiamos en ella para administrar los recursos del programa durante la ejecución.

Cuando los desarrolladores hablan de JVM, generalmente nos referimos al proceso que se ejecuta en una máquina, especialmente un servidor, que representa y controla el uso de recursos para una aplicación Java.

Puedes comparar esto con la especificación JVM, que describe los requisitos para crear un programa que realice estas tareas.

¿Quién desarrolla y mantiene la JVM?

La JVM es ampliamente implementada, muy utilizada y mantenida por programadores tanto corporativos como de código abierto.

El proyecto OpenJDK es el resultado de la decisión de Sun Microsystems de utilizar Java de código abierto. OpenJDK ha continuado a través de la administración de Java por parte de Oracle, con gran parte del trabajo pesado en estos días realizado por ingenieros de Oracle.

Gestión de memoria en la JVM

La interacción más común con una JVM en ejecución es verificar el uso de memoria en la pila. El ajuste más común es sintonizar la configuración de la memoria de la JVM.

Qué hace la máquina virtual

La JVM realiza la siguiente operación:

  • Código de cargas.
  • Verifica el código.
  • Ejecuta código.
  • Proporciona un entorno de ejecución.

JVM proporciona definiciones para:

  • Área de memoria.
  • Formato de archivo de clase.
  • Registro establecido.
  • Colector de basura o garbage collector.
  • Informe de errores fatales, etc.

La máquina virtual en Java en tres partes

Se podría decir que la JVM tiene tres aspectos: especificación, implementación e instancia. Consideremos cada uno de estos.

La especificación de JVM

Primero, la JVM es una especificación de software. De manera algo circular, la especificación JVM destaca que los detalles de su implementación no están definidos dentro de la especificación, para permitir la máxima creatividad en su realización:

Para implementar la máquina virtual Java correctamente, solo necesitas poder leer el classformato del archivo y realizar correctamente las operaciones especificadas en el mismo.

Entonces, todo lo que la máquina virtual en java tiene que hacer es ejecutar los programas Java correctamente. Suena simple, incluso puede parecer simple desde el exterior, pero es una empresa enorme, especialmente dado el poder y la flexibilidad del lenguaje Java.

La JVM como máquina virtual

La JVM es una máquina virtual que ejecuta archivos de clase Java de forma portátil. Ser una máquina virtual significa que la JVM es una abstracción de una máquina real subyacente, como el servidor en el que se ejecuta su programa.

Independientemente del sistema operativo o hardware que esté realmente presente, la JVM crea un entorno predecible para que se ejecuten los programas.

Sin embargo, a diferencia de una verdadera máquina virtual, la JVM no crea un sistema operativo virtual. Sería más preciso describir la JVM como un entorno de ejecución gestionado o una máquina virtual de proceso.

Implementaciones de JVM

La implementación de la especificación de JVM da como resultado un programa de software real, que es una implementación de JVM.

De hecho, hay muchas implementaciones de JVM, tanto de código abierto como propietarias.

HotSpot JVM de OpenJDK es la implementación de referencia y sigue siendo una de las bases de código más probadas y comprobadas del mundo. HotSpot es también la JVM más utilizada.

Una instancia de JVM

Una vez que la especificación JVM se haya implementado y lanzado como un producto de software, puedes descargarlas y ejecutarlas como un programa.

Ese programa descargado es una instancia (o versión instanciada) de la máquina virtual en java.

La mayoría de las veces, cuando los desarrolladores hablan de la JVM, nos referimos a una instancia de JVM que se ejecuta en un entorno de desarrollo o producción de software.