Java基础(011):Java程序的初始化顺序

  Java程序初始化顺序,结论如下:
  • 初始化顺序:父类静态变量、父类静态代码块、子类静态变量、子类静态代码块、父类非静态变量、父类非静态代码块、父类构造函数、子类非静态变量、子类非静态代码块、子类构造函数
  • 总结起来就是3点:先静态后普通,先超类后子类,而且都得按照声明顺序,具体说明如下:
    • 静态的包括静态变量、静态代码块,超类的先按声明顺序执行完再是子类的
    • 静态变量和静态代码块只会在对应的 Class 类加载时初始化一次
    • 普通的包括实例变量 + 代码块 + 构造函数,也是超类的先按声明顺序执行后才是子类的
    • 相当于在构造器里面先调用父类构造器super(),然后再执行实例变量初始化、代码块初始化,最后才执行构造器中的代码。

  其实也很好理解:静态部分在类的加载时执行,而父类先于子类实例化。

参考:

posted @ 2021-03-14 22:40  心明谭  阅读(191)  评论(0编辑  收藏  举报