notas de estudio JVM (A) - área de memoria de Java

área de datos en tiempo de ejecución

área de datos en tiempo de ejecución

A (programa de grabación de posición de marcha) contador de programa

  • El contador de programa es un espacio de memoria más pequeño puede ser visto como un número de línea indicador de byte de código de la rosca se está ejecutando actualmente
  • cámara Bytecode intérprete cambiando el valor del contador se selecciona la instrucción de código de bytes a ser ejecutado siguiente, una rama, bucles, ramificación, manejo de excepciones, y la recuperación de otras funciones básicas hilo basa contador completa
  • java multiproceso segmento de tiempo es asignado por un hilo de ejecución, cuando se agota segmento de tiempo de un hilo, hay una necesidad de registrar un hilo registro para ejecutar, convenientemente una vez que esta rotación se puede realizar cuando un hilo suspendido desde la posición superior continuar, por lo tanto, cada hilo tiene que tener un contador, y el hilo de contador es el hilo aislado, independientemente uno de otro, como hilo-privada
  • se ejecute el método de Java, los registros de contador de direcciones de código de bytes instrucciones se ejecutan, la ejecución del método nativo, el contador está vacía.

Dos, pila Java Virtual Machine

pila VM

  1. Java Virtual Machine pila
    • Es el ciclo de la vida privada de rosca en el mismo hilo. Modelo de memoria para Java método de pila máquina virtual describe la ejecución, mientras que cada método crea un marco de pila se realizan simultáneamente (marco de pila) tabla usada para almacenar información de variables locales, una pila de operandos, enlace dinámico, las exportaciones de método. Cada llamada a un método para la realización de un marco de pila corresponde para empujar la pila en una máquina virtual para procesar
  2. tabla de variables locales
    • Todos los tipos de datos básicos, donde el compilador de la referencia conocida objeto (objeto puntero o referencia de objeto asa), el tipo returnaddress (puntero a abordar una instrucción de código de bytes)
    • de largo y doble tomar hasta dos espacios variable de datos local (ranura), el resto de los tipos de datos ocupa sólo una tabla de variables locales para ver Nether End asignado durante la compilación, al entrar en un método, este método requiere un marco asignación de espacio variable local se determina, el método no cambia durante la operación
  3. Será una excepción: StackOverflowError y OutOfMemoryError

En tercer lugar, las pilas de métodos nativos (Método Nativo Pila)

  1. Para utilizar la máquina virtual de servicios de método nativo, lenguaje de especificación de máquina virtual utilizado en el método nativo pila método, el uso y la estructura de datos no es obligatoria.
  2. Algunas máquinas virtuales (tales como hotspot) directamente a las pilas de métodos nativos en una pila en una máquina virtual
  3. Será una excepción: StackOverflowError y OutOfMemoryError

Cuatro, java heap (montón de Java)

  1. montón de Java es la pieza más grande de la memoria java administración de máquinas virtuales, y compartido por todos los hilos, creada cuando el equipo virtual se inicia
  2. La única función de la instancia de objeto java montón se almacena
  3. montón de Java es el área principal gestionado por el recolector de basura

V. región Método (Non-Heap)

  1. Región compartida por los hilos, almacenamiento de máquinas virtuales se ha cargado la información de clase {clase completo (nombre de paquete. Nombre de clase), la matriz directa. Una lista ordenada de nombre de clase completo, un modificador de la interfaz directa], constantes, variables estáticas, el compilador tiempo para compilar el código y otros datos , etc.
  2. conjunto de constantes de tiempo de ejecución
    • Generado por el compilador para almacenar varias referencias literales y simbólicos en la zona de la piscina después de método constante de tiempo de ejecución de la clase de carga a la tienda

En sexto lugar, la memoria directa

objetos

Una asignación de memoria al crear objetos

Asignación de memoria
  1. colisión puntero

    memoria de pila regular de Absolute, la memoria y la memoria utilizada por un puntero espaciados dos no utilizada hacer memoria no cruz asigna solamente mover el puntero a la distancia del objeto es igual al tamaño de la

Aquí Insertar imagen Descripción

  1. lista libre

    irregular de la memoria, se han utilizado con la memoria no utilizada intercalados, el espacio de memoria utilizando una lista enlazada de registros no se utiliza, los objetos de tiempo asignado para encontrar una gran capacidad de memoria suficiente se divide de la lista

Asignación de memoria - lista libre

En segundo lugar, el objeto de la capa de memoria (HotSpot)

1. Objeto cabeza
  1. El almacenamiento de datos de tiempo de ejecución objeto en sí (marca de la palabra), tal como un código hash, la generacional cerradura edad hilo bandera del estado GC mantiene el bloqueo, el sesgo ID hilo, marca de tiempo sesgo
  2. Tipo de puntero, es decir, un puntero a su clase de objeto es metadatos, por lo que la máquina virtual determina que el objeto pertenece a qué clase
2. Ejemplos de datos
  • objeto de información se almacena realmente eficaz
3. Alinear el relleno
  • Objeto de la memoria ocupada por todo el múltiplo entero de 8 bytes, cuando marcadores de posición

En tercer lugar, el acceso de la ubicación

1. Mango de acceso (estable)

pila java dividir una celda de memoria como un mango, almacén de objetos dirección asa objeto de referencia contenida en el mango de cada uno de los datos de instancia de objeto específico y la información de dirección del tipo de datos

visita mango

2. Acceso Directo Puntero (hotspot mediante una rápida localización)

Tipos de referencia almacenan las direcciones de objetos de almacenamiento dinámico Java, montón objetos a considerar cómo colocar los datos del tipo de objeto

Aquí Insertar imagen Descripción

Publicado 17 artículos originales · ganado elogios 1 · visitas 652

Supongo que te gusta

Origin blog.csdn.net/c_c_y_CC/article/details/93229033
Recomendado
Clasificación