java静态代码块和代码块执行顺序

java静态代码块和代码块执行顺序

先执行 static方法,再执行普通方法,最后执行构造方法。

eg: 

package other;

class B {

    public B() {
        super();
        System.out.println("构造器B");
    }

    {
        System.out.println("普通的代码块B");
    }
    static {
        System.out.println("静态代码块B");
    }

}

public class StaticDemo extends B {

    public StaticDemo() {
        // super();
        System.out.println("构造器-StaticDemo");
    }

    {
        System.out.println("普通的代码块-StaticDemo");
    }
    static {
        System.out.println("静态代码块-StaticDemo");
    }

    //
    public static void main(String[] args) {
        StaticDemo a = new StaticDemo();
    }

}


run:

静态代码块B
静态代码块-StaticDemo
普通的代码块B
构造器B
普通的代码块-StaticDemo
构造器-StaticDemo

你可能感兴趣的:(Java)