Static块(静态代码块)
Static 块仅在该类被加载时执行一次
class UseStatic {
static int a = 3;
static int b;
static void meth(int x) {
System.out.println("x = " + x); System.out.println("a = " + a); System.out.println("b = " + b);
}
static {
System.out.println("Static block initialized.");
b = a * 4;
}
public static void main(String args[]){
meth(42);
}
}
一旦UseStatic 类被装载,所有的static语句被运行。首先,a被设置为3,接着static 块执行(打印一条消息),最后,b被初始化为a*4 或12。然后调用main(),main() 调用meth() ,把值42传递给x。3个println ( ) 语句引用两个static变量a和b,以及局部变量x 。 注意:在一个static 方法中引用任何实例变量都是非法的。 下面是该程序的输出:
Static block initialized.
x = 42
a = 3
b = 12