修正一句误导语句:“静态初始化区块只是在类第一次载入的时候才会被调用一次” to “静态初始化区块只是在类第一次被实例化的时候才会被调用仅仅一次”!
示例代码如下:
运行下面的B程序:
结果如下:
static B
Main B
static A
static print A
print A
示例代码如下:
public class A {
static {
System.out.println("static A");
}
public void print() {
System.out.println("print A");
}
public static void staticPrint() {
System.out.println("static print A");
}
}
运行下面的B程序:
public class B {
static {
System.out.println("static B");
}
/**
* @param args
*/
public static void main(String[] args) {
A a;
System.out.println("Main B");
A.staticPrint();
A aa = new A();
aa.print();
}
}
结果如下:
static B
Main B
static A
static print A
print A