我认为运行结果为
还有不明白创建类对象hello2的意思
最后输出的结果应该是:
通过静态初始化块为静态变量num3赋值
通过初始化块为变量num2赋值
通过构造方法为变量num1赋值
num1:91
num2:74
num3:83
通过初始化块为变量num2赋值
通过构造方法为变量num1赋值
楼上不对啊
加载一个类时,先执行静态初始化块,再执行普通初始化块,最后执行构造方法
所以 结果就是 num3,num2,num1,楼主说的是正确的
为什么创建hello2?
因为静态初始化块,在类第一次加载时执行,之后就不会执行了,但它是一直存在的,因为第一次执行之后会把它保存在内存中,所以一直存在,你可以测试一下,new hello2 的时候 不会执行“通过静态...”那句话,但输出hello2.num3时 还可以得出值是83。
应该是num1、num2、num3的顺序输出啊。你现在能理解什么是类什么是对象吗,建议你在看看前面类和对象那一章节