类的加载与ClassLoader理解
1.加载
将class字节码文件加载到内存中,将这些静态的数据转换为方法区的结构数据,然后生成一个这个类的Class对象
2.链接
2.1 验证:
确保加载的类符合JVM规范,没有安全方面的问题
2.2准备:
正式为类变量分配内存并设置类变量的初始值,这些内存都在方法区进行分配
2.3解析:
虚拟机常量池内的符号引用变为地址引用
3.初始化
执行类构造器< clinit>()方法的过程
初始化一个类的时候,如果发现其父类还未初始化,则先初始化父类
保证类的< clinit>()方法在多线程环境中被加锁和同步