为什么不执行最后一行我懂了,但我没看到调用hello2啊??
在加载一个新的对象时,会先初始化块,然后在调用构造方法。初始化块的时候,会先初始化静态类型的变量,再初始化一般变量。而静态变量在一个main方法中只会初始化一次,所以在hello2中没有num3,而且num2在num1前面。可以把hello1和hello的顺序换一下就清楚了
是因为在创造Hello2时,调用了构造方法和初始化块,但由于静态初始化块只会执行一次,所以只会打印两条。
同问,只是创建了一个hello2的对象,为什么前面的非静态变量还会再赋值一次并打印出来呢? 是因为用构造方法创建对象的时候,会自动执行一遍前面的那段代码吗?
意思是不会执行静态初始化块,也就是不会在出现一次“通过静态初始化块为静态变量num3赋值”