Java类加载的过程

mafu-blogs / 2024-01-10 / 原文

  • 加载:只有使用的类才会被加载例如调用Main方法或者new对象等等。这个阶段会把类的字节码文件读取到JVM虚拟机中然后生成对应的java.lang.Class对象,作为这个类的访问入口。

  • 验证:校验字节码的文件的正确性。

  • 准备:给类的静态变量初始化内存,并赋予默认值。

  • 解析:将符号引用替换成直接引用,简单理解这个阶段会把一些静态方法替换为指向数据所存在的内存的指针。这也是所谓的静态链接的过程。

  • 初始化:对类的静态变量初始化为指定的值,执行静态代码块。

  • 使用

  • 销毁

注意:主类在运行过程中如果使用到其它类,会逐步加载这些类。jar包或war包里的类不是一次性全部加载的,是使用到时才加载。