先日、コードを調べていたところ、次のようなコードを見つけました。
static {
...
}
C++ 出身なので、なぜそれがそこにあるのか分かりませんでした。コードは正常にコンパイルされたので、エラーではありません。この「静的」コード ブロックとは何でしょうか?
ベストアンサー1
それは静的初期化子これは、クラスがロードされたとき(正確には初期化されたときですが、通常は違いに気付かないでしょう)に実行されます。
これは「クラスコンストラクター」と考えることができます。
また、インスタンス初期化子、キーワードがない点を除いて同じように見えます。これらは、オブジェクトの新しいインスタンスが作成されるときに、コンストラクター内のコードに加えてstatic
実行されます。