java中"Static块"是怎么回事,怎么用的,有什么意义  

6.Static块  

Static块:该类的任何方法被首次触碰到时(马克-to-win: when you touch Test的main方法时),Static块被运行。可以在里面初始化你的static变量,不能访问实例变量。在所有静态变量初始化之后运行,见例子。
马克- to-win:马克 java社区:防盗版实名手机尾号: 73203。
本章源码



class Test1{
    static {
        System.out.println("Static block Test1 initialized.");
    }
}
public class Test {
    /*下面两句话是在静态块儿之前执行,所以它的值,被静态块儿里面赋的值所覆盖掉。马克-to-win, the following two statements are before the execution of the static block.*/
    static int a = 3;
    static int b;
    int c;

    static void cal(int x) {
        System.out.println("x = " + x);
        System.out.println("a = " + a);
        System.out.println("b = " + b);
    }

    // 静态块儿Static block
    static {
        // c=9; 是错误的,will cause an error.
        System.out.println("Static block initialized.");
        a = 9;
        b = a * 4;
        System.out.println("a = " + a);
        System.out.println("b = " + b);    }

    public static void main(String args[]) {
        System.out.println("in main");
/* main and cal 都是静态块儿,所以可以这样调用,here main and cal is on the same class and same level, so can use in this way.*/
        cal(42);
        new Test1();
    }
}

结果:
Static block initialized.
a = 9
b = 36
in main
x = 42
a = 9
b = 36
Static block Test1 initialized.


Assignment: 3) bawei, static block {registration, pay tuition,} normal program is "start studying."