Java static スタティックイニシャライザ

静的メンバ変数を初期化するには、どうすれば良いでしょうか?

静的メンバなので、
インスタンスがなくてもアクセスできますが、

その場合、コンストラクタが呼ばれません

じゃあどこで初期化すればいいのかと言うと、
変数の後に=(代入演算子)を付けて初期化します。

class Cstatic {
      public static int sdata = 10;
}

この初期化方法で全て解決しそうな感じはしますが、

大きい配列の初期化クラス配列の初期化などは非常に面倒で、

=(代入演算子)を使った記述は、見づらくなる恐れがあります。

このような場合のために、
スタティックイニシャライザと言う機能が用意されています。

スタティックイニシャライザは、
静的メンバ変数の初期化用の関数みたいなものです。

つまり、コンストラクタの代わりのような役目を果たします。

記述方法は、static { }となります。

class Cstatic {
      public static int sdata1;
      public static int sdata2;

      static {
            sdata1 = 5;
            sdata1 = 10;
      }
}