返回信息流其实new的时候,类就加载好了,只是没有初始化(类初始化而不是实例初始化)好。
B在初始化过程中,需要实例化一个A的实例,因此触发了A类的初始化。而在A的初始化与实例化过程中,B.after只是准备好了(分配了内存,写0),并没有初始化完成,因此读到了0。
怎么解决其实很简单,交换两行代码即可。
static int after = 3;
static A a = new A();
这是一条镜像帖。来源:北邮人论坛 / java / #54715同步于 2017/1/17
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
Re: 帮忙解释一下类加载顺序的问题
ml3615556
2017/1/17镜像同步1 回复
订阅后,新回复会通过你的通知中心匿名送达。
1 条回复