2009-12-02 15 views
22

これはなんですか? Javaの名前静的メソッド

public class ABC { 
    public ABC() { 
     System.out.println("world"); 
    } 
    static { 
     System.out.println("hello"); 
    } 
} 

が印刷されます: 私は本当にこれを理解していないハロー 世界

、または静的なコードがあるメソッドの種類。

答えて

48

「静的初期化ブロック」と呼ばれます。

クラスが最初にロードされたときに実行されます。 1回だけ。

たとえば、クラスがインスタンス化されるたびにコンストラクタが実行されます。静的ブロックはVM/Classローダーによって最初に静的にロードされるときに1回だけ実行されます。

+0

静的初期化子のJLS記述については[こちら](http://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.7)を参照してください。[this](重要である可能性がある初期化の順序のJLS記述については、http://docs.oracle.com/javase/specs/jls/se7/html/jls-12.html#jls-12.4.2)を参照してください。 – selig

7

静的ブロックは、クラスローダーがクラスをロードするたびに1回だけ実行されることに注意してください。つまり、複数のクラスローダーがある場合、ブロックは複数回実行できます。

関連する問題