La Máquina Virtual Java representa la base del lenguaje de programación Java. El software actúa como un tampón de aplicación entre el código Java y el sistema de ordenador subyacente . Esto permite que el código Java se ejecute en cualquier sistema que está, en el aumento de la portabilidad. Dado que la JVM existe como un entorno en el que se ejecuta el código, que contiene su propia configuración de la memoria , incluyendo la memoria profunda y espacio de almacenamiento dinámico . El espacio de almacenamiento dinámico constituye una parte importante de la memoria JVM , que contiene los datos de tiempo de ejecución de aplicaciones críticas . Objetos y memoria
Java representa un lenguaje de programación puramente orientado a objetos, lo que significa que Java contiene los beneficios de la programación orientada a objetos, incluida la herencia y el polimorfismo . Para incluir estos beneficios, la JVM debe tener un espacio para almacenar objetos instanciados . Estos objetos no existen en la memoria inmediata de un hilo de una ejecución de código Java. Más bien , el código Java se declara "referencias" a los objetos que almacenan una ubicación en la memoria profunda y de largo plazo .
El Montón y pila
La pila y el apilar representar la diferencia entre la memoria a largo y corto plazo en un programa en ejecución , independientemente del lenguaje orientado a objetos . La pila se refiere a las variables inmediatas y llamadas dentro de un programa en ejecución del método. Esto incluye variables escalares , como enteros y bytes , así como las funciones llamadas . El montón , por otra parte , representa la ubicación donde se almacenan los objetos creados por el programa . Los objetos se asignan dinámicamente en el montón y se quedan allí hasta que ya no se requiere el programa.
JVM Memory
diseñadores desarrollaron el sistema de memoria de la JVM para imitar la sistema orientado a objetos de otros lenguajes como C + + . Cada hilo de ejecución del código de Java en la JVM tiene su propia pila , que representa sus variables escalares locales y llamadas a funciones . Además, la JVM tiene su propio espacio de almacenamiento dinámico . Cuando un programa crea una referencia a un objeto, ese objeto dibuja de memoria del espacio de almacenamiento dinámico colectivo.
El montón de memoria JVM
El espacio de almacenamiento dinámico es sólo una parte de la memoria JVM total, junto con el espacio de pila y otras asignaciones de memoria para las funciones esenciales y el código JVM. Sin embargo , el espacio de almacenamiento dinámico representa una parte crucial de la JVM en que es el vehículo por el cual se crean objetos . Asimismo, la JVM tiene un programa de recolección de basura incorporado para eliminar objetos no utilizados del montón . En lenguajes orientados a objetos más antiguos , los objetos tenían que ser eliminado manualmente , o corrían el riesgo de agotar el espacio de almacenamiento dinámico en lo que se llamó una " pérdida de memoria. " Recolector de basura de la JVM , sin embargo , controla el montón y elimina objetos antiguos .