当程序要使用某个类时, 如果该类还没有加载到内存, 则系统会通过加装、连接、初始化三步类实现对这个类进行初始化.
- 加载
- 将class文件读入内存, 并创建一个class对象
- 连接
- 验证: 是否有正确的内存结构
- 准备: 为类的静态成员变量分配内存并默认初始化值
- 解析: 将类的二进制数据中的符号引用替换为直接引用
初始化, 字节码文件加装,默认初始化, 显示初始化, 构造方法初始化
加载时机
- 创建类的实例
- 访问类的静态变量或者静态方法
- 使用反射方式创建类或者接口对应的class对象
- 初始化某个类的子类
- 直接使用java.exe命令运行某个类 more >>