java初始化顺序
所属分类 java
浏览量 1259
普通静态初始化,按声明顺序执行
静态初始化块
普通实例初始化,按声明顺序执行
实例初始化块
构造函数
有父类的,先执行父类初始化
测试代码 InitTest.java
public class InitTest {
private int num4 = getNum4();
private int num3 = getNum3();
private static int num2 = getNum2();
private static int num1 = getNum1();
public InitTest(){
System.out.println("InitTest() run");
}
// init
{
System.out.println("init block run");
}
// static init
static{
System.out.println("static init block run");
}
public static void main(String[] args) throws Exception {
InitTest test = new InitTest();
System.out.println(test.toString());
}
private static int getNum1(){
System.out.println("getNum1() run");
return 1;
}
private static int getNum2(){
System.out.println("getNum2() run");
return 2;
}
private static int getNum3(){
System.out.println("getNum3() run");
return 3;
}
private static int getNum4(){
System.out.println("getNum4() run");
return 4;
}
public String toString(){
return String.format("num1=%d,num2=%d,num3=%d,num4=%d", num1,num2,num3,num4);
}
}
输出结果
getNum2() run
getNum1() run
static init block run
getNum4() run
getNum3() run
init block run
InitTest() run
num1=1,num2=2,num3=3,num4=4
上一篇
下一篇
各种日志重定向到slf4j
ServiceLoader机制及实例
什么是smart beta
springboot2启动过程简单分析
常用负载均衡算法
注解组合和继承