一、描述
探究 静态构造代码块、成员变量、构造代码块、构造函数的加载顺序。
二、验证设计
分别在不同模块,输出语句,查看加载过程中的语句输出,得出结论。
三、结论
1)使用new操作符创建对象
1.1)如果含有静态成员变量:
(静态成员变量的静态代码块 -> 静态成员变量的代码块 -> 静态成员变量的构造方法) -> 静态代码块 -> 代码块 -> 构造函数
1.2)如果不含静态成员变量:
静态代码块 -> (静态成员变量的静态代码块 -> 静态成员变量的代码块 -> 静态成员变量的构造方法) -> 代码块 -> 构造函数
2)直接使用对象静态方法
静态代码块 -> 代码块 -> 构造函数 -> 静态方法
3)直接使用类的静态成员变量
(静态成员变量的静态代码块 -> 静态成员变量的代码块 -> 静态成员变量的构造方法) -> 静态代码块
四、代码实现