类的加载过程
把磁盘上的字节码文件加载到内存上
装载阶段
三种类加载器:
1、Bootstrap ClassLoader (启动)
顶级类加载器,由C/C++实现
2、EXT ClassLoader(扩展类加载器)
3、APP ClassLoader(应用类加载器)
路径:CLASSPATH
双亲委派模型
过程:从子类到父类查找是否加载过,如果加载过那么就将加载产物Class对象返回,如果未加载过,再到父类去查找之前是否加载过,这个过程一直持续到顶级加载器。如果直到顶级加载器都未找到的话就从父类到子类尝试加载,如果加载成功就将其加载产物Class对象返回,如果加载失败,依次到子类中尝试加载。如果都加载失败:ClassNotFoundException
双亲委派模型的优点
1、安全性
2、可以避免类的重复加载
链接阶段
验证:1、字节码文件(魔数)主要是验证文件的类型 2、版本号问题
准备:静态成员变量内存开辟,赋类型默认值
解析:将常量池内的符号(间接)引用替换为直接引用
初始化阶段
给静态变量赋值操作