Javaクラスのロードの仕組み

Javaクラスローダーの動作は以下の手順で構成されます。

  1. 読み込み(Loading):クラスのバイトコードファイルをメモリに読み込みます。この段階はクラスローダーによって実行され、クラスローダーはバイトコードファイルをディスクまたはネットワークからメモリに読み込み、対応するClassオブジェクトを作成します。
  2. 検証(Verification):バイトコードファイルの正当性を検証します。この段階では、バイトコードファイルがJava仮想マシンの要件を満たしており、仮想マシン自体の安全を危うくしないことが保証されます。
  3. 準備:クラスの静的変数にメモリ空間を確保して、初期値を設定する。この段階では、仮想マシンがクラスの静的変数にメモリを割り当て、初期のデフォルト値を設定します。
  4. レゾリューション(解決):シンボル参照をダイレクト参照に変換します。Javaプログラムで使用されるクラス、メソッド、フィールドはシンボル参照で表現されます。解析フェーズでは、これらのシンボル参照を対応するダイレクト参照に変換し、プログラムがこれらのクラス、メソッド、フィールドに直接アクセスできるようにします。
  5. クラスの初期化コードを実行するイニシャライゼーション。このフェーズで、仮想マシンはクラスの静的初期化ステートメントを実行します。これには、静的変数の代入ステートメントと静的コードブロックの実行が含まれます。
  6. ロード済みのクラスを利用します。クラスのロードが完了すると、インスタンス作成、メソッド呼び出し、フィールドの参照といった方法でクラスを使用できます。
  7. アンローディング(アンロード):参照されなくなったクラスは、このクラスのアクティブなインスタンスがなくなると、仮想マシンによってアンロードされ、メモリの領域が解放されます。

Javaクラスのロードは必要に応じて行われることに注意してください。つまり、クラスを使用する必要がある場合にのみロードされます。

bannerAds