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:
- Tal adquiridos con definido por el nombre completo de la clase de un flujo de bytes binaria
- 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
- 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.