Máquina virtual Java – Blog de Whizlabs

Siempre que nos preguntan qué diferencia a Java de otros lenguajes de programación, la primera respuesta que nos viene a la mente es “Java es independiente de la plataforma”, y la Máquina Virtual Java simplemente es responsable de esto. Pero, ¿hemos pensado alguna vez cuál era realmente la necesidad de independencia de plataforma y cómo Java es independiente de plataforma? ¿O qué hace exactamente JVM? Bueno, puedes encontrar las respuestas a estas preguntas a continuación.

Un código escrito en cualquier lenguaje de programación está muy vinculado al hardware y al sistema operativo específicos en los que se ejecuta. Por ejemplo, una aplicación Mac no se puede ejecutar en una estación de trabajo UNIX. Por lo tanto, para superar este problema, las principales aplicaciones comerciales como MS-Word o Netscape Navigator tienen que escribir de forma casi independiente para todas las plataformas en las que se ejecutan. Pero en el caso de aplicaciones desarrolladas en java, no tenemos que preocuparnos por la plataforma en la que podemos ejecutarlas. Esto se debe al código de bytes creado por el compilador de Java.

Echemos ahora un vistazo a la compilación ordinaria y al proceso de compilación de Java:

Proceso de compilación ordinario
Un código escrito por el programador se conoce como código fuente. Este código fuente pasa por un proceso de compilación y genera un código de máquina que es diferente para diferentes máquinas. La diferencia en el código de máquina se debe a que cada máquina tiene un compilador diferente. Por ejemplo, un Macintosh tendrá un código de máquina que Windows no podrá entender. Generalmente llamamos a este código de máquina código ejecutable nativo.

Proceso de compilación de Java
A diferencia de los compiladores comunes, el compilador de Java, es decir, javac, no produce código ejecutable nativo para una máquina en particular. En cambio, produce un código de bytes.

El código de bytes es un conjunto de instrucciones altamente optimizado diseñado para ejecutarse en Java Runtime Environment (JRE). El componente vital de JRE es la máquina virtual Java (JVM) que inspecciona y ejecuta el código de bytes. De hecho, la JVM original fue diseñada como un intérprete de código de bytes.

Una vez que escribimos un código fuente de Java, el compilador de Java lo convierte en código de bytes, que es el mismo para todas las máquinas, ya sea Macintosh, Windows, UNIX, etc. Por lo tanto, solo es necesario implementar la JVM para varias plataformas. Una vez que existe el paquete de tiempo de ejecución para un sistema determinado, cualquier programa Java puede ejecutarse en él.

Al ejecutar el código de bytes en diferentes, varios, puede notar que su ejecución es un poco más lenta que la del código de máquina. Esto se debe a que JVM primero traduce el código de bytes al lenguaje de máquina. Por lo tanto, para superar este problema, JVM utiliza la ayuda de JIT (compilación Just In Time). JIT ofrece almacenamiento en caché del código compilado y, por lo tanto, JVM mejora su rendimiento. Por lo tanto, llegamos a la conclusión de que la JVM es parte del JRE y, por otro lado; JIT es parte de la JVM.

Una ventaja de JVM es que, aunque su implementación puede diferir de una plataforma a otra, el código de bytes sigue siendo el mismo para cada JVM en diferentes máquinas. La máquina virtual Java es una máquina abstracta diseñada para implementarse sobre los procesadores existentes. Oculta el sistema operativo subyacente de las aplicaciones Java y puede implementarse en software o hardware. Además, JVM combinada con las interfaces de programación de aplicaciones (API) de Java crean una plataforma Java. De hecho, JVM también ayuda a que un programa Java sea seguro, porque tiene el control y contiene el programa, evitando así que el programa genere efectos secundarios fuera del sistema.

Publicaciones Similares

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *