¿Cómo funciona la Máquina Virtual Java? Como se mencionó en la nota anterior, la Máquina Virtual Java actúa como un ejecutable para los programas creados en este lenguaje de programación. Los programadores experimentados pueden crear aplicaciones o programas que se ejecutan en una variedad de sistemas sin personalización adicional. Como hemos visto, todo es posible gracias a la JVM. Entonces, cuando se compila un archivo .java, el compilador de lenguaje genera un archivo .class (con código de bytes) con el mismo nombre que la clase en el archivo .java. Este archivo generado por el compilador pasa por varias etapas cuando lo ejecuta la máquina virtual de Java. Este paso describe cómo funciona la JVM.
En cualquier caso, la máquina virtual Java responde principalmente a tres acciones:
- Cargar: este elemento se carga un archivo .class y genera los datos binarios asociados. Luego se guarda para continuar con el proceso.
- Vincular: en este paso, la JVM realiza la validación y preparación del archivo.
- Inicialización: Durante este proceso, a todas las variables se les asignan los valores definidos en el código Java y comienza la ejecución del programa. Esto sucede en orden de arriba a abajo en cada clase y de padre a hijo en la jerarquía de clases.
Posteriormente, la memoria de la máquina virtual Java realizar otras acciones, pues cuando se carga se inicia un .class, también pasa a través de varios tipos de memoria de la máquina virtual Java.
- Área de métodos: Aquí se almacena toda la información sobre los diferentes niveles de los programas escritos en Java.
- Heap: Almacena toda la información de un objeto que contiene el código de un programa creado en Java.
- Pila: para cada subproceso, la máquina virtual de Java (JVM) crea una pila de tiempo de ejecución almacenada en esta parte de la memoria de la JVM.
- Registros: Almacena instrucciones de ejecución para cada hilo creado por la Máquina Virtual Java.
En las siguientes notas ampliaremos la información referente a la JVM, así como su ejecución. Esto permitirá programar en Java.
|