La comprensión en profundidad de JVM: Proceso de carga de clases

En primer lugar, el tipo de ciclo de vida

En el que la posición de fase de conexión colectivamente caja grande, después de que el proceso de inicialización puede ser resuelto.

En segundo lugar, el proceso de carga de clases

1, Load

El primer paso en el proceso de carga de clases, sobre todo para completar las tres cosas siguientes:

  1. Tal adquiridos con definido por el nombre completo de la clase de un flujo de bytes binaria
  2. La conversión de la estructura de almacenamiento estática flujo de bytes representado por el método de área de estructura de datos en tiempo de ejecución
  3. Generar en la memoria un representante de la clase de objeto de clase, tal como un método de acceso a la zona de entrada de datos

Un no-carga array fase clase (clase fase de carga operación de adquisición flujo de bytes binario) es controlable etapa más fuerte, para completar este paso también podemos personalizar el cargador de clases para controlar la manera de obtener el flujo de bytes (Invalida un cargador de clases  loadClass() métodos). tipo de matriz no es creada por el cargador de clases, que creado directamente por la máquina virtual de Java.

Después de que se completó la etapa de carga, la JVM de acuerdo con una corriente binaria de bytes para almacenar el formato deseado en el área de método.

Cargando fase y la fase de conexión para la cruz.

2, la verificación

Esta fase determinará si JVM capaz de resistir los ataques maliciosos desde el rendimiento de ejecución en términos de fase de verificación del subsistema carga de trabajo de la clase JVM carga ha sido responsable de parte de ella.

éªè¯é¶æ®μ示æå¾

3, la fase de preparación

Formalmente asignar memoria para las variables de clase y variables de clase establecer el valor inicial de la etapa.

(1) comprende una asignación de memoria variables de clase (estática).

(2) el valor inicial del tipo de clase es por lo general el valor por defecto de cero.

4, el análisis sintáctico

JVM la piscina constante simbólica se sustituye por una referencia directa a una referencia (campo de puntero método de clase en la memoria, el desplazamiento) proceso.

Principalmente para la clase o interfaz, campos, métodos de clase, método de interfaz, método de tipo, y llama a la clase mango método Calificadores 7 referencias simbólicas.

5, la inicialización

Este es el último paso de carga de clases, este es el código de programa Java (código de bytes) definido en la implementación real de la clase de ejecución de clase constructor <clinit> procedimiento de método.

<Clinit> operación de copia se compila automáticamente colección de todas las variables y la declaración de la clase bloque de fusión estática de los estados.

Publicados 134 artículos originales · ganado elogios 91 · vistas 160 000 +

Supongo que te gusta

Origin blog.csdn.net/weixin_44588495/article/details/104126638
Recomendado
Clasificación