JVMクラスロードの仕組み:徹底解説と最適化
- 自動読み込み:Javaアプリケーションが起動する際、JVMは自動的にシステムクラスを読み込む。例えば、java.lang.Objectクラスやjava.lang.Stringクラスなどが含まれる。
- 明示的なロード:明示的に読み込むクラスを指定するために、ClassLoaderクラスのloadClass()メソッドやClassクラスのforName()メソッドを使用する。
- 動的なロード:あるクラスを動的にロードするためにクラスローダーを使用することで、プログラム実行中に必要に応じて特定のクラスをロードすることができます。
- 拡張ロード:JRE/lib/extディレクトリにクラスファイルを配置することで、クラスローダの検索パスを拡張し、JVMがこれらのクラスをロードできるようにします。
- カスタム・ローディング:開発者は特定のローディング・ロジックを実現するために、カスタムのクラス・ローダーを作成することができます。たとえば、クラスをネットワークやデータベースからロードすることができます。