2022年10月

结论先行

静态代码块 → 普通代码块 → 构造方法

父类静态代码块 → 子类静态代码块 → 父类普通代码块 → 父类构造方法 → 子类普通代码块 → 子类构造方法

Java初始化顺序

  1. 在new B()一个实例时首先要进行类的装载。(类只有在使用New调用创建的时候才会被java类装载器装入)
  2. 在装载类时,先装载父类A,再装载子类B
  3. 装载父类A后,完成静态动作(包括静态代码和变量,它们的级别是相同的,安装代码中出现的顺序初始化)
  4. 装载子类B后,完成静态动作
    类装载完成,开始进行实例化
  5. 在实例化子类B时,先要实例化父类A
  6. 实例化父类A时,先成员实例化(非静态代码)
  7. 父类A的构造方法
  8. 子类B的成员实例化(非静态代码)
  9. 子类B的构造方法

- 阅读剩余部分 -