頭の中にJava初期化メカニズムの正しいモデルがあるかどうかわかりません。各クラスは次のとおりです。
- スーパークラスが存在する場合は、それを初期化します
- 自分を初期化する
初期化は次のとおりです。
- 初期化子の外部で値が設定されている静的変数とインスタンス変数を初期化します。
- 静的初期化ブロックを実行する
- コンストラクターブロックを実行する
それは正確/正しいですか?
頭の中にJava初期化メカニズムの正しいモデルがあるかどうかわかりません。各クラスは次のとおりです。
初期化は次のとおりです。
それは正確/正しいですか?
Java言語仕様によれば、あなたの仮定は多かれ少なかれ正しいです。例外は次のとおりです。
コードは以下のように実行されます-
静的初期化ブロックは、クラスが最初にロードされるときに1回実行されます。
静的変数
すべてのスーパーコンストラクター。
インスタンスのinitブロックは、コンストラクターがsuper()を呼び出した後に実行されます。
インスタンス変数。
(初期化ブロックは、表示された順序で実行されます。)