public class Test {

    static {
        System.out.println("Static");
    }

    {
        System.out.println("Non-static block");
    }

    public static void main(String[] args) {
        Test t = new Test();
        Test t2 = new Test();
    }
}

輸出結果:

Static
Non-static block
Non-static block

結論:static區塊 在被引用時,只會執行一次;沒有"static"的區塊,在每次 建立 新物件時,都會執行一次。

 

參考:
java - Static Initialization Blocks - Stack Overflow
● 日常隨筆: [Java]Java的Static block與建構子(constructor)
 

 

arrow
arrow

    Robert 發表在 痞客邦 留言(0) 人氣()