static代码块也叫静态代码块,是在类中独立于类成员的static语句块,可以有多个,位置可以随便放,它不在任何的方法体内,jvm加载类时会执行这些静态的代码块。
如果static代码块有多个,jvm将按照它们在类中出现的先后顺序依次执行它们,每个代码块只会被执行一次。看例子:
public class test5 {
private static int a;
private int b;
static {
test5.a = 3;
system.out.println(a);
test5 t = new test5();
t.f();
t.b = 1000;
system.out.println(t.b);
}
test5.a = 4;
public static void main(string[] args) {
// todo 自动生成方法存根
test5.a = 5;
public void f() {
system.out.println("hhahhahah");
}
运行结果:
3
hhahhahah
1000
4
5
利用静态代码块可以对一些static变量进行赋值,最后再看一眼这些例子,都一个static的main方法,这样jvm在运行main方法的时候可以直接调用而不用创建实例。
原帖地址:http://lxmgfd.iteye.com/blog/1507451