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了自身的对象,将从上到下执行构造代码块、构造器(两者可以说绑定在一起)

浙公网安备 33010602011771号