Proceso de carga de clases Java

La carga de clases Java se divide en los siguientes tres pasos

  1. Cargue el archivo .class en la memoria
  2. Verificación de código de bytes, análisis de estructura de datos de clase, asignación de memoria
  3. Atributos estáticos y asignación inicial, ejecución de bloques estáticos.

Nota: Al cargar archivos de clase, solo se inicializan las variables de clase, los bloques de inicialización estática y las variables miembro estáticas. Los métodos de la clase solo se cargarán en el montón y no se inicializarán.

Formas de cargar clases

Java usa ClassLoader para cargar clases en la memoria. Java tiene los siguientes tres ClassLoader

  1. Bootstrap ClassLoader
    Este es el cargador de clases superior y principalmente carga las clases requeridas por la JVM para su propio trabajo.
  2. ExtClassLoader
    este usuario carga la clase bajo la ruta de "java.ext.dirs"
  3. AppClassLoader
    es un cargador de clases ordinario utilizado para cargar clases en la ruta de classpath

Java ClassLoader es para garantizar que cada clase solo pueda cargarse una vez mediante el mecanismo de carga de nivel. Cuando cada ClassLoader carga una clase, primero llamará al ClassLoader superior para determinar si se ha cargado. Si no está cargado, y no debería haber cargado un classLoader superior, el ClassLoader actual cargará esta clase en la JVM.

Nota: jvm usa el nombre de clase completo de la instancia de Class + ClassLoader para cargar esta clase y determinar si esta clase ya existe. En otras palabras, la misma clase es cargada por diferentes instancias de ClassLoader (diferentes instancias de la misma clase de ClassLoader), y la JVM pensará que estas son dos clases diferentes.

Despliegue en caliente

190 artículos originales publicados · 19 alabanzas · 200,000+ vistas

Supongo que te gusta

Origin blog.csdn.net/zengchenacmer/article/details/77692431
Recomendado
Clasificación