- public class Test {
- {
- System.out.println("非Static初始化块");
- }
- static {
- System.out.println("Static初始化块");
- }
- public Test() {
- System.out.println("构造函数");
- }
- public static void main(String[] args) {
- new Test();
- new Test();
- }
- }
上面这段代码输出的结果为:
Static初始化块
非Static初始化块
构造函数
非Static初始化块
构造函数
这说明:
Static的初始化块在类被加载时首先执行,而且只执行一次。
非Static的初始化块在新建一个类的实例时执行,每新建一个实例都执行一次,并且在构造函数之前执行。