public class test extends test1 {
    {
        System.out.println("1");
        }
    public  test(){
        System.out.println("2");
    }
    static {
        System.out.println("3");
    }
    public static void main(String args[]) {
        new test();
    }}
class test1{
   static
   {
        System.out.println("4");
        };
       public test1 () {
           System.out.println("5");
           }
       }

解决方案 »

  1.   

    先执行static 由父类先
    4
    3
    5
    1
    2
      

  2.   

    输出结果
    4,  //初始化test1
    3,  //初始化test
    5,  //调用test1()
    1,  //初始化模块
    2   //test()java 里面类的初始化和对象的初始化都要在类的体系从上往下执行
      

  3.   

    先父类,再子类;先static 再non-static;同一个类中 先按照每个成员的声明顺序初始化,最后是构造函数。
      

  4.   

    肯定是先test1,再test,结果43512
    父类先,static先,然后main, new test()时,先父类
      

  5.   

    肯定是先test1,再test,结果54213
      

  6.   

    先执行static 由父类先
    执行顺序是:43512
      

  7.   

    在加载test时会先加载test1^^^^^^^^^拿分
      

  8.   

    please read this book: effective java
    this class come from this book