Java 类成员执行顺序

  1. 如果类还没有被加载:
    1. 先执行父类的静态代码块和静态变量初始化,并且静态代码块和静态变量的执行顺序只跟代码中出现的顺序有关
    2. 执行子类的静态代码块和静态变量初始化
    3. 执行父类的实例变量初始化(例如:int a; 初始化就是0,引用类型就是null)
    4. 执行父类的构造函数
    5. 执行子类的实例变量初始化(例如:int a; 初始化就是0,引用类型就是null)
    6. 执行子类的构造函数
  2. 如果类已经被加载:
    1. 则静态代码块和静态变量就不用重复执行,再创建类对象时,只执行与实例相关的变量初始化和构造方法

参考 java 中类初始化,构造方法,静态成员变量,静态块的加载顺序

发表评论