可以看出跟上面的代码没有什么不同,唯一的不同就是我把导出类中的静态成员变量i 变成了成员变量i,可以看出结果是截然不同,现在的结果是:0
原因:因为上面的静态成员变量是跟着类的加载而初始化的 所以结果是1 而下面的是 成员变量又因为现在还在基类构造器中所以导出类中的成员变量还没有得到初始化 所以是0
所以上面的初始化顺序不够完整,现在补全下:
首先jvm加载类时 会对每个对象的默认初始化 为0 ,对通过组合方式的引用类型 默认初始化为 null
总结:
java中首先初始化基类在初始化导出类(有多少个基类初始化多少个)
如果那里有错误希望大家帮忙提出了大家一起学习(自己也在学习中。。。。)。
提示: java中的各成员初始化的顺序是非常重要的,很好的掌握对以后的学习非常有帮助