Java构造方法成员变量初始化以及静态成员变量初始化三者的先后顺序是什么样的?
Posted shsxt
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java构造方法成员变量初始化以及静态成员变量初始化三者的先后顺序是什么样的?相关的知识,希望对你有一定的参考价值。
【Java笔试真题】:构造方法、成员变量初始化以及静态成员变量初始化三者的先后顺序是什么样的?
【解答】:
当类第一次被加载的时候,静态变量会首先初始化,接着编译器会把实例变量初始化为默认值,然后执行构造方法。
Java程序的初始化一般遵循以下三个原则(以下三原则优先级依次递减):
① 静态对象(变量)优先于非静态对象(变量)初始化,其中,静态对象(变量)只初始化一次,而非静态对象(变量)可能会初始化多次;
② 父类优先于子类进行初始化;
③ 按照成员变量定义顺序进行初始化,即使变量定义散布于方法定义中,它们依然在任何方法(包括构造方法)被调用之前先初始化。
Java程序初始化工作可以在许多不同的代码块中完成(例如静态代码块、构造方法等),它们执行的顺序如下:父类静态变量、父类静态代码块、子类静态变量、子类静态代码块、父类非静态变量、父类非静态代码块、父类构造方法、子类非静态变量、子类非静态代码块和子类构造方法。
先后顺序是:静态成员变量、成员变量、构造方法。
关于构造文章的更多信息可以阅读:《Java中,构造方法所具有的8个特点_尚学堂Java培训干货》,更多Java学习资料视频等信息请访问上海尚学堂Java培训获取。
以上是关于Java构造方法成员变量初始化以及静态成员变量初始化三者的先后顺序是什么样的?的主要内容,如果未能解决你的问题,请参考以下文章
一文详解:Java中父子类静态块构造块构造方法成员变量之间的初始化先后顺序与执行先后顺序