JVM | |
---|---|
Desarrollador | microsistemas de sol |
Profundidad de bits | 32 (64 con Java 9) |
presentado | 1994 |
Versiones | 18.0.1.1 [1] |
Tipo de | Máquina de pila, con acceso a memoria dedicada |
Orden de bytes | big-endian |
Registros | |
propósito general | Pila de operandos para cada método (hasta 65535 operandos) y variables locales de método (hasta 65535) |
Java Virtual Machine (abreviado Java VM , JVM ) - Java virtual machine - la parte principal del sistema de ejecución de Java , el llamado Java Runtime Environment ( JRE ). La máquina virtual de Java ejecuta el código de bytes de Java que el compilador de Java ( javac ) ha generado previamente a partir del código fuente de un programa de Java . La JVM también se puede utilizar para ejecutar programas escritos en otros lenguajes de programación . Por ejemplo, el código fuente de Ada se puede compilar en el código de bytes de Java, que luego puede ser ejecutado por la JVM.
La JVM es un componente clave de la plataforma Java. Debido a que las máquinas virtuales de Java están disponibles para muchas plataformas de hardware y software, Java puede verse como un middleware y una plataforma independiente. El uso de un código de bytes para muchas plataformas permite que Java se describa como "compilar una vez, ejecutar en cualquier lugar" (compilar una vez, ejecutar en cualquier lugar).
Las máquinas virtuales Java suelen contener un intérprete de código de bytes ; sin embargo, para mejorar el rendimiento, muchas máquinas también utilizan la compilación JIT de fragmentos de código de bytes que se ejecutan con frecuencia en el código de la máquina .
En 1996 , Sun lanzó la primera versión del documento JVM Blue Book , que describía la especificación de la máquina virtual Java, que se convirtió en el estándar industrial de facto para la plataforma Java. Gracias a este documento, aparecieron implementaciones alternativas de la JVM, que son " desarrollo desde cero " ( ing. diseño de sala limpia ). Un ejemplo es Kaffe .
A partir de J2SE 5.0, los cambios en la especificación de JVM se generan de acuerdo con los deseos formales de las partes interesadas. El proceso de realizar cambios en las especificaciones de JVM se denomina Proceso de la comunidad Java .
La JVM disponible en la fuente C de Sun se llama KVM (Kilo Virtual Machine) y está disponible en su sitio web.
Al comienzo del desarrollo de la plataforma "Java", había dos implementaciones en competencia de Java VM:
Sin embargo, "Microsoft Java VM" no era totalmente compatible con la especificación descrita por Sun en el "libro azul de JVM" y tenía problemas significativos de rendimiento y seguridad bajo cargas de trabajo pesadas (con una gran cantidad de subprocesos que se ejecutaban simultáneamente).
Sun consideró esta situación inaceptable y decidió que Microsoft estaba desacreditando y profanando deliberadamente la plataforma Java al distribuir su versión de Java Virtual Machine, que tiene las desventajas anteriores. Sobre esta base, Sun demandó repetidamente a Microsoft, y Microsoft se vio privado de los siguientes derechos de implementación:
Algunos revisores informáticos han sugerido que la dura postura de Sun sobre Java puede haber proporcionado un incentivo adicional para que Microsoft desarrolle su propia solución de Windows: el " .NET Framework ".
En 2001 , con el objetivo de desarrollar un estándar para aplicaciones de escritorio multiplataforma , IBM lanzó un proyecto de código abierto: "Eclipse" .
El marco "Eclipse" se basó en un desarrollo cerrado anterior: "VisualAge" de IBM . IBM logró equilibrar los intereses de la comunidad libre y los intereses de las empresas (sus intereses) en la Licencia Pública Eclipse , reconocida por la Free Software Foundation .
El proyecto se está desarrollando con éxito, se utiliza en la industria, se ha separado en gran medida de IBM en uno independiente (ver "Fundación Eclipse" ).
Sun se mantiene en oposición a la Fundación Eclipse , así como a Microsoft. Formalmente, la principal causa de controversia sigue siendo la biblioteca "Standard Widget Toolkit" (SWT), que contradice el concepto de Sun de una máquina virtual y la portabilidad de las aplicaciones Java.
Los programas destinados a ejecutarse en la JVM deben compilarse en un formato binario portátil estandarizado, que generalmente se representa como archivos ".class". Un programa puede constar de muchas clases ubicadas en diferentes archivos. Para facilitar el alojamiento de programas grandes, algunos archivos ".class" se pueden empaquetar juntos en un archivo denominado ".jar" (abreviatura de "Java Archive").
La JVM ejecuta archivos ".class" y ".jar", emulando las instrucciones dadas en ellos de las siguientes maneras:
En estos días, la compilación JIT se usa en la mayoría de las JVM para lograr una mayor velocidad. También hay compiladores adelantados que permiten a los desarrolladores de aplicaciones volver a compilar archivos de clase en código nativo de la plataforma.
Como la mayoría de las máquinas virtuales, Java Virtual Machine tiene una arquitectura orientada a la pila que es común a los microcontroladores y microprocesadores .
JVM: una instancia de JRE (Java Runtime Environment) que entra en acción al ejecutar programas Java; al finalizar la ejecución, el recolector de elementos no utilizados elimina esta instancia. JIT es esa parte de la Máquina Virtual de Java que se utiliza para acelerar la ejecución de aplicaciones; JIT compila aquellas partes del bytecode que tienen la misma funcionalidad al mismo tiempo, lo que reduce el tiempo de compilación.
Máquinas virtuales Java ( comparación ) | |
---|---|
sol , oráculo |
|
Implementaciones principales | |
Incrustado |
|
Otro | |
no soportado |
Java | |
---|---|
Plataformas | |
Tecnologías solares | |
Tecnologías clave de terceros | |
Historia |
|
Propiedades del lenguaje | |
Lenguajes de secuencias de comandos |
|
Conferencias Java |
|
lenguaje de programación c | |
---|---|
compiladores |
|
bibliotecas | |
Peculiaridades | |
algunos descendientes | |
C y otros lenguajes |
|
Categoría:Lenguaje de programación C |