Qué es la Java Virtual Machine

3/37

Lectura

¿Qué es una Java Virtual Machine?

Una virtual machine es una virtualización o simulación de un sistema operativo o de los procesos que ocurren dentro de este. En nuestro caso, la Java Virtual Machine pertenece al segundo tipo y se encarga de simular los procesos que ocurren dentro de un sistema operativo. A este tipo de máquinas virtuales se les llama Process Virtual Machines.

¿Qué ventaja nos da?

Nos ayuda a manejar los punteros y las referencias de memoria que en otros tipos de lenguaje como C o C++ hay que manejar manualmente. Para esto se utiliza un proceso llamado garbage collection. Este proceso se encarga de revisar qué referencia de memoria no se está utilizando para eliminarla y así reducir la cantidad memoria que puede consumir un programa.

¿Cómo funciona la JVM?

La JVM funciona como un punto medio entre el código que nosotros escribimos y lo que entiende el sistema operativo del ordenador. Dependiendo del sistema operativo que uses puede variar. La JVM nos ayuda a que nuestro código se ejecute en Linux, Windows y MacOS. Nuestro código es convertido por la JVM a un lenguaje que puede entender el sistema operativo llamado Java Bytecode.

En palabras más simples, nosotros ingresamos código de Kotlin y se transforma en Bytecode. Este proceso puede ocurrir con otros lenguajes como Java, esto hace que nuestro código de Kotlin pueda ser utilizado desde Java y el código de Java pueda ser utilizado en Kotlin.

Aportes 9

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Bytecode vs lenguaje ensamblador
Bytecode es similar a lenguaje ensamblador en que no es un lenguaje de alto nivel, pero todavía es algo legible, a diferencia del lenguaje de máquina. Ambos pueden considerarse “lenguajes intermedios” que se encuentran entre el código fuente y el código de máquina. La principal diferencia entre los dos es que el código de bytes se genera para una máquina virtual (programa.), mientras que el lenguaje ensamblador se crea para un CPU (hardware).



Perdone profe, pero la defincion en los ultimos 2 parrafos no es correcta.

Al realizar la compilacion de un fichero, el compilador (JAVAC) y no la JVM, se encarga de convertir el codigo a Bytecode. Los ficheros (.class) resultantes son ejecutados por la JVM y traducidos a codigo maquina, para que luego ese codigo maquina, sea ejecutado por el procesador.

Saludos!

![]

Muy interesante como puede llegar al mismo punto desde diferentes lenguajes. Desde luego, es muy poderosa la JVM.

La JVM interpreta el bytecode en algo que cada sistema operativo puede entender

Sin la JVM nuestro código fuente no seria entendido por el sistema operativo de nuestras computadoras.

La JVM (Java Virtual Machine) se encarga de ejecutar el código de forma que funcione en cualquier dispositivo o sistema operativo.