您现在的位置是:主页 > Web前端技术 > Web前端技术
Java程序初始化顺序是怎么样的开发技术
IDCBT2022-01-14【服务器技术】人已围观
简介这篇文章主要为大家展示了“Java程序初始化顺序是怎么样的”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java程序初始化顺序是
这篇文章主要为大家展示了“Java程序初始化顺序是怎么样的”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java程序初始化顺序是怎么样的”这篇文章吧。
Java程序的初始化一般遵循三个原则(优先级依次递减):
1,静态对象(变量)优先于非静态对象(变量)初始化,其中,静态对象(变量)只初始化一次,而非静态对象(变量)可能会初始化很多次。
2,父类优先于子类进行初始化。
3,按照成员变量的定义顺序进行初始化。即使变量定义散布于方法定义之中,它们依然在任何方法被调用之前先初始化。
Java程序初始化工作可以在许多不同的代码块中完成(例如静态代码块,构造函数等),它们的执行顺序如下:
父类静态变量
父类静态代码块
子类静态变量
子类静态代码块
父类非静态变量
父类非静态代码块
父类构造函数
子类非静态变量
子类非静态代码块
子类构造函数。
下面给出一个不同模块初始化时执行顺序的一个例子:
class Base{ static { System.out.println("Base static block"); } public Base(){ System.out.println("Base constructor"); } public class Derived extends Base{ static{ System.out.println("Drevied static block"); } { System.out.println("Drevied block"); } public Derived(){ System.out.println("Drevied constructor"); } public static void main(String args[]){ new Derived(); } }标签:很赞哦! ()