static代码块是在类加载的时候就执行的。
执行顺序:父类>子类
执行顺序:(优先级从高到低)静态代码块>mian方法>构造代码块>构造方法
示例代码:
B.java
public class B {
static {
System.out.println("class B static");
}
B() {
System.out.println("Class B create");
}
}
A.java
public class A extends B {
static {
//静态代码块
System.out.println("class A static");
}
{
//构造代码块
System.out.println("class A ");
}
public static void main(String[] args) {
System.out.println("Class A main");
new A();
new B();
}
A() {
System.out.println("class A create");
{
//普通代码块
int x = 3;
}
int x = 1;
}
}
输出结果如下:
各个代码块的含义和执行顺序,参见下文:
http://www.cnblogs.com/sophine/p/3531282.html