初始化t1,t2的时候,分别会构造两个B类型的对象,构造块又是在创建对象的时候被调用。这样解释了前2行输出。
当所有static变量都初始化完成,开始执行静态块,静态块只执行一次。
当开始运行主方法,又一次构造B类型的对象t,于是再次执行构造块,构建了几个对象,构造块就执行几次。
可以使用javap -c查看字节码发现,静态块和类的静态属性本质上是一样的,静态块和静态属性的执行顺序就是代码编写时的顺序。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。