• 微信公众号:美女很有趣。 工作之余,放松一下,关注即送10G+美女照片!

java 类的初始化顺序

开发技术 开发技术 6天前 7次浏览

类在使用时,会加载进内存里,然后进行成员属性等初始化。

顺序:

1、在加载完后,所有成员属性都会有一个默认值,比如 int 类型默认为0。
2、按照定义顺序,初始化父类静态属性和静态代码块,如果父类还有父类,一直逆向初始化父类,直至根父类
3、按照定义顺序,初始化子类静态属性和静态代码块
4、按照定义顺序,初始化父类普通属性和普通代码块
5、执行父类构造器
6、按照定义顺序,初始化子类普通属性和普通代码块
7、执行子类构造器

总体而言,先父类,后子类;先静态属性,后普通属性;先属性,后构造器。

https://blog.csdn.net/xyajia/article/details/80922329

注意:
1、静态属性只初始化一次,在第一次使用时初始化后,无论创建多少次对象, 都不会再初始化。

2、关于构造器:
1)如果在类中,没有定义 构造器,编译器会自动创建一个无参构造器。反之,如果定义了构造器,编译器就不会再添加无参构造器了。
2)如果父类只定义了有参构造器,而没有无参构造器,并且在子类中没有 显示调用 父类的有参构造器,则在初始化时会报错。因在子类中,默认会调用父类的无参构造器,而父类没有无参构造器,就出错了。


程序员灯塔
转载请注明原文链接:java 类的初始化顺序
喜欢 (0)