类的加载过程

类的加载过程分为:加载——链接——初始化,如下图


image.png

加载:
类的加载指的是将类的.class文件中的二进制数据读取到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个Java.lang.Class对象,用来封装类在方法区内的数据结构
需要注意的是:数组类型不通过类加载器创建,它由 Java 虚拟机直接创建。

链接:链接又分为3步,分别是验证,准备,解析:
验证
检查加载的class的正确性和安全性
准备
准备阶段是正式为类变量分配内存并设置类变量初始值(类变量的默认值)的阶段,这些内存都将在方法区中分配。
解析
解析阶段是虚拟机将常量池内的符号引用替换为直接引用的过程。

初始化
初始化是类加载的最后一步,也是真正执行类中定义的 Java 程序代码(字节码),初始化阶段是执行类构造器 ()方法的过程。
执行类变量赋值和静态代码块

你可能感兴趣的:(类的加载过程)