【802、Class 的加载机制知道吗】

99 阅读1分钟

类的加载机制是指将类的字节码文件加载到内存中,并在运行时创建类的对象的过程。Java 类的加载机制遵循以下三个步骤:

  1. 加载(Loading) : 加载是类加载的第一个阶段。在这个阶段,Java 虚拟机(JVM)会根据类的全限定名(包括包名)来查找并加载类的字节码文件。类的字节码可以来自文件系统、网络,或者其他来源。加载的类字节码会被存储在方法区中,并在运行时创建对应的 java.lang.Class 对象,表示这个类。

  2. 链接(Linking) : 链接是类加载的第二个阶段,分为三个步骤:验证、准备、和解析。

    • 验证(Verification):确保类的字节码满足 Java 虚拟机的安全和语义要求,防止恶意代码被加载。
    • 准备(Preparation):为类的静态变量分配内存空间,并设置默认值。
    • 解析(Resolution):将符号引用(例如类名、方法名)解析为直接引用(直接指向内存地址),以便能正确访问到目标类或方法。
  3. 初始化(Initialization) : 初始化是类加载的最后一个阶段。在这个阶段,JVM会执行类的初始化代码,包括静态变量的赋值和静态代码块的执行。只有当类被主动使用时才会进行初始化,包括以下几种情况:

    • 创建类的实例对象
    • 访问类的静态变量
    • 调用类的静态方法
    • 使用反射访问类