类的初始化顺序

初始化顺序:
1 父类static变量,static块。
2 子类static变量,static块。
3 父类变量,初始块。
4 父类构造方法。
5 子类变量,初始块。
6 子类构造方法。
(同一层之间按照代码前后顺序执行。)

通过实验,并不是每次初始化类都会执行以上所有步骤。
1 实例化类(new)得时候全部执行。
(以下其他方法都不执行构造方法。)
2 通过调类static方法的情况只执行前两步。
3 调类得static变量时只执行前两步。
4 调类的static final变量,(赋值计算在运行过程中),会执行前两步。

Java代码 
1.public static final int IIOF = (int)Math.random(); 
public static final int IIOF = (int)Math.random();
5 调类得普通static final变量时(赋值计算在编译过程中)不会初始化类。
如:
Java代码 
1.public static final String IOF = "test"; 
 public static final String IOF = "test";
or
Java代码 
1.public static final int CAL = 4 + 4; 
public static final int CAL = 4 + 4;
6 调用class.forName() 只执行前两步.  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值