Máquina virtual de Java


Una máquina virtual Java ( JVM ) es una máquina virtual que permite a una computadora ejecutar programas Java , así como programas escritos en otros lenguajes que también se compilan en código de bytes Java . La JVM se detalla mediante una especificación que describe formalmente lo que se requiere en una implementación de JVM. Tener una especificación garantiza la interoperabilidad de los programas Java en diferentes implementaciones, de modo que los autores de programas que utilizan Java Development Kit (JDK) no necesitan preocuparse por las idiosincrasias de la plataforma de hardware subyacente.

La implementación de referencia JVM es desarrollada por el proyecto OpenJDK como código fuente abierto e incluye un compilador JIT llamado HotSpot . Las versiones de Java con soporte comercial disponibles de Oracle Corporation se basan en el tiempo de ejecución de OpenJDK. Eclipse OpenJ9 es otra JVM de código abierto para OpenJDK.

La máquina virtual Java es una computadora abstracta (virtual) definida por una especificación. Es parte del entorno de ejecución de Java. El algoritmo de recolección de basura utilizado y cualquier optimización interna de las instrucciones de la máquina virtual Java (su traducción al código de la máquina ) no se especifican. La principal razón de esta omisión es no restringir innecesariamente a los implementadores. Cualquier aplicación Java se puede ejecutar solo dentro de alguna implementación concreta de la especificación abstracta de la máquina virtual Java. [2]

A partir de Java Platform, Standard Edition (J2SE) 5.0, los cambios a la especificación de JVM se han desarrollado bajo el Proceso de la comunidad de Java como JSR 924. [3] A partir de 2006 , los cambios en la especificación para admitir los cambios propuestos al formato de archivo de clase (JSR 202) [4] se están realizando como una versión de mantenimiento de JSR 924. La especificación para la JVM se publicó como el libro azul , [5] El prefacio dice:

Tenemos la intención de que esta especificación documente suficientemente la máquina virtual Java para hacer posibles implementaciones de sala limpia compatibles. Oracle proporciona pruebas que verifican el correcto funcionamiento de las implementaciones de la Máquina Virtual Java.

Una de las JVM de Oracle se denomina HotSpot; el otro, heredado de BEA Systems , es JRockit . Las implementaciones de Java de sala limpia incluyen Kaffe , OpenJ9 y CEE-J de Skelmir . Oracle es propietario de la marca registrada Java y puede permitir su uso para certificar las suites de implementación como totalmente compatibles con la especificación de Oracle.


Descripción general de una arquitectura de máquina virtual Java (JVM) basada en la especificación de máquina virtual Java Java SE 7 Edition