java 类加载顺序

加载顺序是:

        父类静态块-----父类静态常量-------子类静态块----------子类静态常量----------父类普通代码块------------父类构造方法------------子类代码块------------子类构造方法

类的加载顺序

1、静态代码块/静态成员

         静态代码块/静态成员最先加载。

         静态代码块/静态成员顺序按照代码书写先后顺序加载。

         如父类有静态代码块/静态成员,先调用父类静态代码块/静态成员(Object最优先),再一次加载本类的静态代码块/静态成员。

2、普通代码块/非静态成员

         同一类中普通代码块/非静态成员顺序在静态代码块/静态成员加载之后。

         同一类中多段普通代码块/非静态成员加载顺序按照代码书写先后加载。

         如父类有普通代码块/非静态成员,现在加载父类的普通代码块/非静态成员,在加载子类的普通代码块/非静态成员。

3、构造方法

       同一类中构造方法次于代码块之后加载。

       同一类中如果有多个构造方法,按照实例时所调用的加载。

       先加载父类的构造方法,在加载子类的构造方法。

       子类的普通代码块/非静态成员加载顺序低于父类构造函数的加载顺序。

       

4、静态方法/普通方法

        调用时才加载。

总结:

   先加载父类的静态代码块/静态成员(父类中中都有或有多个有,按书写顺序) -------------  加载子类的静态代码块/静态成员(字类中都有或有多个,按书写顺序)---------父类的普通代码块/非静态成员(父类中中都有或有多个有,按书写顺序)------------父类的构造方法-----------------子类的普通代码块/非静态成员(字类中都有或有多个,按书写顺序)-----------子类的构造方法

猜你喜欢

转载自blueskator.iteye.com/blog/2212443