类的加载(顺序执行的过程):加载,链接(包括验证,准备,解析),初始化
加载:利用全限定路径名确定类的唯一性
准备阶段:为类的静态变量分配内存,并初始化默认值。
解析:把类当中的符号引用转化为运行时的直接引用
初始化:
类的初始化的时机:
- 创建类的实例(new 反射 克隆 反序列化)
- 访问类中的某个静态变量,或对静态变量进行赋值
- 主动调用类的静态方法
- class.forName (" 包类名 ")
- 完成子类的初始化,也会完成对本类的初始化
- 该类是程序的引导入口(main入口或test入口)
类的加载器是类加载流程的实现者:类的加载器都是单例模式运行的