java notas de estudio modelo de memoria

Un flujo de Java ejecución del programa:

 

 

  • 1. En primer lugar, queremos ejecutar el programa Java, primero tenemos que escribir los archivos fuente de Java, que es el código de Java, seguido por el compilador (java Complier), (javac para compilar) el código fuente en un código de bytes del archivo de clase
  • 2. Con los archivos de código de bytes, con el fin de ejecutar los archivos de código de bytes, es necesario llamar al cargador de clases de cargador de clases, el código de bytes correspondientes. Archivo se carga en la memoria, que es la (zona de tiempo de ejecución de datos en tiempo de ejecución Área de datos), el modelo de memoria de Java que es éste.
  • 3. Tras ello, entregado Jvm motor de ejecución (motor de ejecución) se basará en el contenido de la zona de datos de tiempo de ejecución, para ejecutar nuestro código.

En segundo modelo de memoria de Java:

La JVM especificación de memoria, la memoria JVM se divide en:

  pila VM, montón, el área de método, el contador de programa, las pilas de métodos nativos de cinco partes.

Contador de Programa:

  • Para cada hilo tiene un contador de programa
  • El contador de programa para cada hilo es un hilo privado, independientemente uno de otro, son thread-safe
  • La dirección de memoria del contador de programa registra el subproceso en ejecución para interrumpir proceder de acuerdo con la dirección de la instrucción hilo de nuevo interrumpe reanuda la ejecución

VM Java pila Pila:

  • Cada hilo se corresponderá con una pila java
  • Cada pila de Java que consta de varios marcos de pila
  • Cada marco de pila corresponde a un método de
  • En el método de marco de pila en tiempo de ejecución, crear y método pila ejecutado, el elemento de marco de pila marco de pila pop-up como el método devuelve un valor, que la pila se borra
  • La parte superior de la pila pila pila marco llamadas actividades, la representación de la ejecución actual, la ejecución puede ser cpu
  • Solicitud de profundidad de la pila de rosca es mayor que la profundidad permisible máquina virtual, una excepción será lanzada StackOverflowError
  • No es posible aplicar suficiente memoria cuando la pila se expanda, lo que arrojará un OutOfMemoryError

 

área de método:

  • área de Java pila es permanente

  • La zona método para almacenar la información a ser de clase cargado (nombre, modificadores), variable estática clase, la clase se define como el último tipo de constante, el método de campo de información de clase, información de clase
  • La zona método es compartida hilo java
  • zona método a utilizar más memoria que su tamaño admisible que se tire OutOfMemoryError: Error espacio de mensaje PremGen

piscina constante:

  • zona parcial método
  • Almacenar dos tipos de datos: el literal y el importe de referencia
  • Literal: cuerda, variables finales
  • Citas: / interfaz, el método y los nombres de campos de clase y descriptores
  • conjunto de constantes será determinado en tiempo de compilación, y se almacena en el archivo .class compilados

pilas nativas método: similar al papel desempeñado por la pila de Java, la pila de la aplicación Java JVM del método Java-servicio, y las pilas de métodos nativos locales para el servicio método de ejecución de JVM.

 

Supongo que te gusta

Origin www.cnblogs.com/padazala/p/12669783.html
Recomendado
Clasificación