活用法はわかってませんが、こんなこともできるのかーってメモ
ポイント
- コンストラクタよりも先に呼ばれる。
- 変数の保持も可能。
public class Main { public static void main(String[] args) { SIB sib = new SIB(); System.out.println(sib.something); } }
public class SIB { public static final String something; static { System.out.println("Static Initialization Block 1"); something = "something"; } public SIB() { System.out.println("Constructor called"); } static { System.out.println("Static Initialization Block 2"); } }
Static Initialization Block 1 Static Initialization Block 2 Constructor called something