/**
* 首先执行静态代码块
接着执行构造代码块
最后指向构造方法
静态代码块:只执行一次
构造代码块:每次调用构造方法都执行
* @author
* 静态代码块早于main方法执行
*/
class HelloA {
public HelloA() {
System.out.println("HelloA");
}
{ System.out.println("I'm A class"); }
static { System.out.println("static A"); }
}
public class Test1 extends HelloA {
public Test1() {
System.out.println("Test1");
}
{ System.out.println("I'm B class"); }
public static void main(String[] args) {
//局部代码块
{
int x = 10;
System.out.println(x);
}
new Test1();
new Test1();
}
static { System.out.println("static B"); }
}
执行结果:
static A
static B
10
I'm A class
HelloA
I'm B class
Test1
I'm A class
HelloA
I'm B class
Test1