问答详情
源自:8-10 Java 中的 static 使用之静态初始化块

Static输出问题

5736be9c0001cb8003530223.jpg

5736be9c0001fdd505000375.jpg

为什么先输出 通过初始化块赋值num2  在输出通过初始化块赋值num1

提问者:倒数三秒就能见到我 2016-05-14 14:02

个回答

  • 流逝的回忆已成空白
    2016-05-16 14:07:29
    已采纳

    这设计到java中的优先级、static 有优先级的、

  • 不甘于现实
    2016-05-14 14:32:43

    首先你创建了类的对象hello后,就会按顺序(先执行静态化初始化块,再初始化块,最后构造方法)执行一边,然后依次执行你的输出语句命令,也就是 num1:91; num2:74;num3:83。 最后有创建了一个了的对象hello2,所以又要和前面一样按顺序(先执行静态化初始化块,再初始化块,最后构造方法)执行,但是静态初始化块只能执行一边,所以不再执行了,因此是 先执行初始化块,再执行构造方法。