Java类初始化顺序小结
-
第一种情况(单一类)
测试结果
静态变量 静态初始化块 变量 初始化块 构造器 变量 初始化块 构造器
总结:类初始化顺序:静态变量->静态代码块->普通变量->初始化块(普通代码块)->构造器,并且静态变量和静态代码块只加载一次
-
第二种情况(继承关系)
测试结果
父类--静态变量 父类--静态初始化块 子类--静态变量 子类--静态初始化块 子类main方法 父类--变量 父类--初始化块 父类--构造器 i=9, j=0 子类--变量 子类--初始化块 子类--构造器 i=9,j=20
总结:类初始化顺序:父类(静态变量->静态代码块)->子类类(静态变量->静态代码块)->父类(普通变量->初始化块(普通代码块)->构造器)->子类类(普通变量->初始化块(普通代码块)->构造器)