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