Javaクラスのローディング手順とは何ですか?
Javaのクラスローダー処理は5つのステップで行われます。
- ローディング:クラスローダーによってバイトコードファイルをメモリにロードし、対応するClassオブジェクトを作成。このプロセスはクラスローダーにより実行され、クラスの完全修飾名に基づきバイトコードファイルを探して読み込み、クラスオブジェクトに変換する。
- バイトコードファイルの検証(検証)を行い、Java言語仕様に準拠していることを保証する。検証プロセスには、ファイル形式検証、メタデータ検証、バイトコード検証、およびシンボル参照検証などが含まれる。
- クラスの静的変数のメモリを確保し、デフォルトの初期値を設定します。このフェーズでは、静的変数の初期値が設定され、数値型変数には0、参照型変数にはnullが設定されます。
- 解決(リゾリューション): シンボル参照を直接参照に変換します。シンボル参照はコンパイル段階で使用され、メモリ アドレスとは無関係ですが、直接参照はメモリ アドレスを直接指すポインタ、ハンドル、またはオフセットです。解決プロセスはシンボル参照を直接参照に置き換え、プログラムがメモリ内のオブジェクトに直接アクセスできるようにします。
- 初期化(Initialization):クラスの静的変数の初期値をセットし、静的コードブロック内のコードを実行します。初期値はプログラム中で指定された値にセットされ、静的コードブロック内のコードが実行されます。また、クラスに親クラスがあれば、親クラスの初期化が先に行われます。
5 つの手順で Java クラスのローディングプロセスが完了