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)
 

 

文章標籤
全站熱搜
創作者介紹
創作者 Robert 的頭像
Robert

Robert 的部落格

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