看了这个再也不会弄混类的初始化顺序了

静态初始化块:使用关键字static定义的代码块。当类装载到系统时执行一次,静态初始化块只能初始化类的静态数据成员。

非静态初始化块:对每个要生成的对象执行一次。可以初始化静态数据成员以及实例数据成员。

一个类可以有多个初始化块,在同种类型情况下,它们将按照在程序中出现的顺序运行,但是有如下规则:

静态初始化块在非静态初始化块之前执行。

静态/非静态初始化块在构造函数之前执行。

当类创建一个对象了的初始顺序:


1.  父类静态成员和静态初始化块 ,按在代码中出现的顺序依次执行


2.  子类静态成员和静态初始化块 ,按在代码中出现的顺序依次执行


3.  父类实例成员和实例初始化块 ,按在代码中出现的顺序依次执行


4.  父类构造方法


5.  子类实例成员和实例初始化块 ,按在代码中出现的顺序依次执行


6.  子类构造方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值