java初始化顺序  
   
所属分类 java
浏览量 2003
普通静态初始化,按声明顺序执行
静态初始化块
普通实例初始化,按声明顺序执行
实例初始化块
构造函数
有父类的,先执行父类初始化
测试代码 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启动过程简单分析 
 常用负载均衡算法 
 注解组合和继承