イニシャライザとコンストラクタ。
 似てますよね。
イニシャライザとコンストラクタの動作サンプル
イニシャライザ、コンストラクタで文字列を出力。
 動作順序を確認します。
 また、1度目は、変数の用意のみ(null)。
 2度目は、インスタンス化。
 3度目は、再度のインスタンス化です。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | public class InitializerTest {     public static void main(String[] args) {         System.out.println("-- 1.null --");         Initializer init = null;         System.out.println("-- 2.new1 --");         init = new Initializer();         System.out.println("-- 3.new2 --");         init = new Initializer();     } } class Initializer {     static {         System.out.println("static イニシャライザ");     }     {         System.out.println("イニシャライザ");     }     public Initializer() {         System.out.println("コンストラクタ");     } } | 
実行結果
実行パターンによって、イニシャライザ、コンストラクタの文字列が出力されます。
| 1 2 3 4 5 6 7 8 | -- 1.null -- -- 2.new1 -- static イニシャライザ イニシャライザ コンストラクタ -- 3.new2 -- イニシャライザ コンストラクタ | 
サンプルの解説
staticイニシャライザ、イニシャライザ、コンストラクタの順序で処理は進みます。
staticイニシャライザはクラスを読み込んだときの1度のみ実行。
 ここでは、newしていますが、staticメソッドなどでアクセスしてももちろん実行されます。
また、イニシャライザ、コンストラクタは、インスタンス化のときに毎回実行されます。














