java static

 

class HelloA {

    public HelloA() {
        System.out.println("HelloA");
    }

    {
        System.out.println("I'm A class");
    }

    static {
        System.out.println("static A");
    }

}

public class HelloB extends HelloA {
    public HelloB() {
        System.out.println("HelloB");
    }

    {
        System.out.println("I'm B class");
    }

    static {
        System.out.println("static B");
    }

    public static void main(String[] args) {

        System.out.println("-------main start-------");
        new HelloB();
        new HelloB();
        System.out.println("-------main end-------");
    }
}

static A
static B
-------main start-------
I'm A class
HelloA
I'm B class
HelloB
I'm A class
HelloA
I'm B class
HelloB
-------main end-------

----------------------------------------------------------------------

1. static code在类被加载时(如果是android系统,那就应该是很早的时候)会从上至下(父类到子类)执行

2. 如果有语句new了自身的对象,将从上到下执行构造代码块、构造器(两者可以说绑定在一起)

posted @ 2015-05-14 11:04  牧 天  阅读(237)  评论(0)    收藏  举报