Tags Palabras claves

[Info] ¿Qué es la Máquina Virtual de Java?

20/01/2004 - 00:23 por Enrique C. | Informe spam
Algo de culturilla:
http://www.sc.ehu.es/sbweb/fisica/c...irtual.htm


La Máquina Virtual Java (MVJ)

La Máquina Virtual Java es el núcleo del lenguaje de programación Java. De hecho, es imposible
ejecutar un programa Java sin ejecutar alguna implantación de la MVJ. En la MVJ se encuentra el
motor que en realidad ejecuta el programa Java y es la clave de muchas de las características
principales de Java, como la portabilidad, la eficiencia y la seguridad.

Siempre que se corre un programa Java, las instrucciones que lo componen no son ejecutadas
directamente por el hardware sobre el que subyace, sino que son pasadas a un elemento de software
intermedio, que es el encargado de que las instrucciones sean ejecutadas por el hardware. Es decir,
el código Java no se ejecuta directamente sobre un procesador físico, sino sobre un procesador
virtual Java, precisamente el software intermedio del que habíamos hablado anteriormente.

La representación de los códigos de instrucción Java (bytecode) es simbólica, en el sentido de que
los desplazamientos e índices dentro de los métodos no son constantes, sino que son cadenas de
caracteres o nombres simbólicos. Estos nombres son resueltos la primera vez que se ejecuta el
método, es decir, el nombre simbólico se busca dentro del archivo de clase (.class) y se determina
el valor numérico del desplazamiento. Este valor es guardado para aumentar la velocidad de futuros
accesos. Gracias a esto, es posible introducir un nuevo método o sobreescribir uno existente en
tiempo de ejecución, sin afectar o romper la estructura del código.

Sun utiliza el término "Máquina Virtual Java", para referirse a la especificación abstracta de una
máquina de software para ejecutar programas Java. La especificación de esta máquina virtual, define
elementos como el formato de los archivos de clases de Java (.class), así como la semántica de cada
una de las instrucciones que componen el conjunto de instrucciones de la máquina virtual. A las
implantaciones de esta especificación se les conocen como "Sistemas en Tiempo de Ejecución Java".
Ejemplos de Sistemas de tiempo de ejecución son el Navegador de Nestcape, el Explorador de Microsoft
y el programa Java (incluido en el JDK). Un sistema de tiempo de ejecución incluye típicamente:

Motor de ejecución. El procesador virtual que se encarga de ejecutar el código (bytecode), generado
por algún
compilador de Java o por algún ensamblador[3] del procesador virtual Java.

Manejador de memoria. Encargado de obtener memoria para las nuevas instancias de objetos, arreglos,
etcétera, y realizar tareas de recolección de basura.

Manejador de errores y excepciones. Encargado de generar, lanzar y atrapar excepciones.

Soporte de métodos nativos. Encargado de llamar métodos de C++ o funciones de C, desde métodos Java
y viceversa.

Interfaz multihilos. Encargada de proporcionar el soporte para hilos y monitores.

Cargador de clases. Su función es cargar dinámicamente las clases Java a partir de los archivos de
clase (.class).

Administrador de seguridad. Se encarga de asegurar que las clases cargadas sean seguras, así como
controlar el acceso a los recursos del sistema.


Saludos,
Enrique Cortés
Windows XP Pro 2600-SP1
ekort@hotmail.com

Reglas de conducta de los grupos de noticias:
http://support.microsoft.com/defaul...newsreglas
 

Leer las respuestas

#1 Josep Ll. Paniagua [MS MVP Windows]
20/01/2004 - 00:41 | Informe spam
Excelente introducción. Sólo falta para completar la información explicar a los usuarios que Microsoft ya no da soporte a la tecnología Java, salvo en lo que legalmente está obligado por acuerdo judicial. Las implicaciones de lo anterior permiten afirmar que:

- Microsoft retira de la suite de programación "Microsoft Visual Studio .NET" la aplicación de desarrollo J++
- Microsoft quita de sus aplicaciones comerciales cualquier implementación de la Microsoft Java Virtual Machine (MSJVM).
- Microsoft dejará de dar soporte COMPLETAMENTE a la máquina virtual de Java el 30 de septiembre de 2004.
- Microsoft pone a disposición de sus clientes los medios necesarios para realizar una transición lo menos traumática posible desde Java a la plataforma que prefieran.

Más información:
http://www.microsoft.com/mscorp/java/

Saludetes.

Josep Ll. Paniagua
Microsoft MVP Windows
http://www.paniagua.net

-
La información contenida en este mensaje se proporciona "TAL CUAL", sin garantías explícitas ni implícitas, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica lo recomendado o sugerido en el presente mensaje.
-

"Enrique C." escribió en el mensaje news:
Algo de culturilla:
http://www.sc.ehu.es/sbweb/fisica/c...irtual.htm

Preguntas similares