¿Qué es una máquina virtual de java?

Por suerte, usted nunca tiene que escribir o descifrar el código de bytes de Java. Escribir el código de bytes es el compilador&rsquo-s trabajo. Descifrando el código de bytes es la máquina virtual de Java&rsquo-s trabajo.

En general, las computadoras don&rsquo-t ejecutar instrucciones de código de bytes de Java. En su lugar, cada tipo de procesador de la computadora tiene su propio conjunto de instrucciones ejecutables, y cada sistema operativo del ordenador utiliza el procesador&instrucciones rsquo-s en una manera ligeramente diferente.

&ldquo-A Máquina Virtual de Java ejecuta el código (y otros pueblos&rsquo- código Java) en el equipo.”

- Barry Burd, Java para los maniquíes, 6ª Edición

Ejemplo listados de Java

aquí&rsquo-s una situación hipotética: Imagínese que ejecuta el sistema operativo Linux en un equipo que tiene un procesador Pentium de edad. Su amigo corre Linux en un ordenador con un tipo diferente de procesador - un procesador PowerPC. (En la década de 1990, Intel Corporation hizo procesadores Pentium y PowerPC de IBM hizo procesadores).

Esta lista contiene una serie de instrucciones para mostrar ¡Hola Mundo! en la pantalla del ordenador. Las instrucciones de trabajo en un procesador Pentium que ejecuta el sistema operativo Linux.

.datamsg: .ascii "Hola, mundo! N"len =. - msg.text.global _start_start: movl $ len, edxmovl% $ mensaje, $ ecxmovl% 1,% ebxmovl $ 4, $% eaxint 0x80movl $ 0,% ebxmovl $ 1, $% eaxint 0x80

Aquí hay otro conjunto de instrucciones para mostrar ¡Hola Mundo! en la pantalla. Las instrucciones de este anuncio de trabajo en un procesador PowerPC Linux.

.datamsg: .string "Hola, mundo! N"len =. - _start_start msg.text.global: li 0,4li 3,1lis 4, msg @ haaddi4,4, msg @ lli 5, lenscli 0,1li 3,1sc

Estas instrucciones se ejecutan sin problemas en un procesador Pentium. Sin embargo, estas instrucciones no significan nada para un procesador PowerPC. Del mismo modo, otras instrucciones se ejecutan muy bien en un PowerPC, pero estas mismas instrucciones son galimatías completa a un ordenador con un procesador Pentium. Por lo que su amigo&software PowerPC rsquo-s podría no estar disponible en su ordenador. Y el ordenador Intel&-S rsquo software podría no funcionar en absoluto de su amigo&rsquo-s ordenador.

Ahora ve a tu primo&casa rsquo-s. Tu primo&rsquo-s equipo tiene un procesador Pentium (como la suya), pero su primo&rsquo-s equipo se ejecuta Windows en lugar de Linux. Lo que hace su primo&rsquo-s equipo hacer cuando le da de comer el código en el Listado 2-3 Pentium? Es un grito, &ldquo-No es una aplicación Win32 válida&rdquo- o &ldquo-Windows puede&rsquo-t abrir este archivo.&rdquo- Qué lío!

¿Cuál es el código de bytes de Java?

código de bytes de Java crea orden de todo este caos. código de bytes de Java es algo así como el código en los listados 2-3 y 2-4, pero ISN código de bytes de Java&rsquo-T específicas para un tipo de procesador o de un sistema operativo. En su lugar, un conjunto de instrucciones de código de bytes de Java se ejecuta en cualquier ordenador.

Si se escribe un programa Java y compilar ese programa Java en código de bytes, a continuación, el equipo puede ejecutar el código de bytes, su amigo&equipo rsquo-s puede ejecutar el código de bytes, su abuela&rsquo-s superordenador puede ejecutar el código de bytes, y con un poco de suerte, tu móvil o tableta puede ejecutar el código de bytes.

Con Java, se puede tomar un archivo de código de bytes que ha creado con un ordenador Windows, copie el código de bytes a quién sabe qué tipo de ordenador y ejecute el código de bytes sin ningún problema en absoluto. Ese&rsquo-s una de las muchas razones por las que Java se ha hecho popular con tanta rapidez. Esta característica sobresaliente, que le da la capacidad de ejecutar código en muchos tipos diferentes de computadoras, se llama portabilidad.

¿Qué hace la máquina virtual de Java?

Lo que hace el código de bytes de Java tan versátil? Este fantástico universalidad que disfrutan los programas de código de bytes de Java viene de la máquina virtual de Java. La Máquina Virtual Java es una de esas tres herramientas que debe tener en su ordenador.

Imagínese que usted&rsquo-re el representante de Windows para el Consejo de Seguridad de las Naciones Unidas. (Véase la figura.) El representante Macintosh está sentado a su derecha, y el representante de Linux está a su izquierda. El representante distingue de Java está en el podio. El representante de Java está hablando en código de bytes, y ni usted ni sus colegas embajadores (Mac y Linux) entiende una palabra de código de bytes de Java.

Pero cada uno de ustedes tiene un intérprete. Su intérprete traduce del código de bytes a Windows, mientras que el representante de Java habla. Otro intérprete traduce del código de bytes para Macintosh-ESE. Y un tercer intérprete traduce el código de bytes en Linux-hablar.

Piense en su intérprete como embajadora virtual. El intérprete doesn&rsquo-t es verdaderamente representativo de su país, pero el intérprete realiza una de las tareas importantes que un verdadero embajador realiza.

El intérprete escucha bytecode en su nombre. El intérprete hace lo que haría si fuera su lengua materna código de bytes de Java. El intérprete se hace pasar por el embajador de Windows, y se sienta a través del discurso de código de bytes aburrido, teniendo en cada palabra, y el procesamiento de cada palabra de una manera u otra.

Tiene un intérprete - embajadora virtual. De la misma manera, una computadora Windows se ejecuta su propio software de código de bytes-interpretación. Ese software es la máquina virtual de Java.

Una reunión imaginaria del Consejo de Seguridad de la ONU.

Una reunión imaginaria del Consejo de Seguridad de la ONU.

Una máquina virtual de Java es un proxy, un chico de los recados, un intermediario. La JVM sirve como un intérprete entre Java&rsquo-s código de bytes de ejecución en cualquier lugar y su equipo&sistema propio rsquo-s. Mientras se ejecuta, la JVM camina su ordenador a través de la ejecución de las instrucciones de código de bytes.

La JVM examina el código de bytes, poco a poco, y lleva a cabo las instrucciones descritas en el código de bytes. La JVM interpreta el código de bytes para su sistema Windows, Mac, o su máquina Linux, o por cualquier tipo de equipo que&rsquo re-utilizar. Ese&rsquo-s una buena cosa. Eso&rsquo-s lo que hace que los programas Java más portátil que los programas en cualquier otro idioma.

Artículos Relacionados