首页 > 代码库 > (原)Java初始化过程

(原)Java初始化过程

先看一个demo,然后进行归纳。

 1 class X{ 2     static M m=new M(); 3     Y y=new Y(); 4     public X(){ 5         System.out.print("X"); 6     } 7 } 8 class Y{ 9     public Y(){10         System.out.print("Y");11     }12 }13 14 class M{15     public M(){16         System.out.print("M");17     }18 }19 20 class N{21     public N(){22         System.out.print("N");23     }24 }25 26 public class Z extends X{27     static N n=new N();28     Y y=new Y();29     public Z(){30         System.out.print("Z");31     }32     public static void main(String[] args) {33         new Z();34     }35 }

技术分享技术分享

 

 

通过单步调试及查阅相关资料可对Java初始化归纳出以下结论:

1、初始化父类中的静态成员变量和静态代码块。

2、初始化子类中的静态成员变量和静态代码块。

3、初始化父类的普通成员变量和代码块,再执行父类的构造方法。

4、初始化子类的普通成员变量和代码块,再执行子类的构造方法。

(原)Java初始化过程