Java对象初始化顺序
单一类:(静态成员变量&静态初始化块)<(成员变量&初始化块)<构造函数
public class 对象初始化顺序 { public static void main(String[] args){ Person p = new Person(); } } class Person{ public static String staticfield ="静态成员变量"; public String field ="成员变量"; static { System.out.println(staticfield); System.out.println("静态初始化块"); } { System.out.println(field); System.out.println("初始化块"); } Person(){ System.out.println("构造函数"); } }
输出结果
静态成员变量
静态初始化块
成员变量
初始化块
构造函数
继承类:(父类静态成员变量&父类静态初始化块)<(子类静态成员变量&子类静态初始化块)<(父类变量&父类初始化块)<(父类构造器&子类变量)<(子类初始化块&子类构造器)
括号内根据出现的先后顺序决定。