类的加载与ClassLoader理解

类的加载与ClassLoader理解

1.加载

将class字节码文件加载到内存中,将这些静态的数据转换为方法区的结构数据,然后生成一个这个类的Class对象

2.链接
2.1 验证:

确保加载的类符合JVM规范,没有安全方面的问题

2.2准备:

正式为类变量分配内存并设置类变量的初始值,这些内存都在方法区进行分配

2.3解析:

虚拟机常量池内的符号引用变为地址引用

3.初始化

执行类构造器< clinit>()方法的过程
初始化一个类的时候,如果发现其父类还未初始化,则先初始化父类
保证类的< clinit>()方法在多线程环境中被加锁和同步

上一篇:spring-boot-learning自动配置原理


下一篇:自定义一个类加载器