初始化块问题

来源:8-10 Java 中的 static 使用之静态初始化块

慕尼黑6232582

2018-12-31 17:11

最后一行代码是再次创建对象,能理解不再执行静态初始化块,(即整个程序只执行一次)也明白构造方法会被再执行一次,(及整个程序执行两次)但是为什么初始化块也会再执行一次(即为什么初始化块整个会执行两次?)?初始化块不在构造方法里啊,为什么最后初始化块会执行两次?

写回答 关注

2回答

  • 慕设计9223949
    2018-12-31 19:36:39
    已采纳

    初始化块作为每个对象的一部分,而不是类的一部分(除非是静态代码块);

    因此,每创建一个对象的时候,都会走一次初始化块;

  • 慕虎4170652
    2019-01-21 11:23:53

    每次创建对象Jvm都会编译一次,而静态代码块Jvm只会编译一次,初始化代码块每次Jvm编译都会执行的。这个也解释了为什么第二次创建对象初始化代码块会再次执行哦,可以看下Jvm的运行机制,加深理解

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530559 学习 · 6091 问题

查看课程

相似问题