为什么老师敲得代码执行了hello还会执行hello2?

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

qq_熊吉君_1

2017-04-01 20:07

为什么不执行最后一行我懂了,但我没看到调用hello2啊??

写回答 关注

4回答

  • 石三春
    2017-07-10 11:01:21

    在加载一个新的对象时,会先初始化块,然后在调用构造方法。初始化块的时候,会先初始化静态类型的变量,再初始化一般变量。而静态变量在一个main方法中只会初始化一次,所以在hello2中没有num3,而且num2在num1前面。可以把hello1和hello的顺序换一下就清楚了


  • 慕粉2007546340
    2017-05-01 17:06:23

    是因为在创造Hello2时,调用了构造方法和初始化块,但由于静态初始化块只会执行一次,所以只会打印两条。

    苏文进

    请问是在创建对象的过程中会执行程序中的构造方法和初始化块吗?如果是这样,为什么呢?

    2017-06-15 12:36:00

    共 1 条回复 >

  • 迷惘的湖
    2017-04-21 13:05:57

    同问,只是创建了一个hello2的对象,为什么前面的非静态变量还会再赋值一次并打印出来呢? 是因为用构造方法创建对象的时候,会自动执行一遍前面的那段代码吗?

  • 丅一詀垨候X
    2017-04-01 20:34:50

    意思是不会执行静态初始化块,也就是不会在出现一次“通过静态初始化块为静态变量num3赋值”

Java入门第二季 升级版

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

530643 学习 · 6091 问题

查看课程

相似问题