ホームページ  >  記事  >  Java  >  JAVA開発におけるclassLoaderクラスロード機構の詳細説明

JAVA開発におけるclassLoaderクラスロード機構の詳細説明

无忌哥哥
无忌哥哥オリジナル
2018-07-18 11:25:151802ブラウズ

jvm には、上から下に 3 つのクラス ローダー (ユーザー定義ローダー) があります:

bootstrap classLoader このクラス ローダーは、Java 仮想マシンの起動時に jdk コア クラス ライブラリをメモリにロードします

extension classLoader extension クラス ローダー、このクラスローダーは、jre

システムのいくつかのjarをロードするクラスライブラリです。 classLoader システムクラスローダー、このクラスローダーは、クラスパスの下にある指定されたクラスライブラリをメモリにロードします

カスタム classLoader ユーザー定義のクラスローダー、クラスローダーは、プログラマー自身。プログラムの実行中に、クラス ファイルは java.lang.classLoader のサブクラスを通じて動的にロードされます

ロード メカニズム:

Java クラスのロード メカニズムは、親委任メカニズムと呼ばれます。ローダーがクラスをリクエストすると、まずクラスがメモリにロードされているかどうかをボトムアップでクエリし、ロードされている場合はクラスを直接返します。ロードされていない場合は、まず親クラス ローダーにクラスのロードを委託します。現在のローダーに親クラスがある場合は、親クラスがクラスをロードできない場合にのみ、それ自体をロードできない場合は次のレベルに戻ります。場合、クラスが見つからない例外 (ClassNotFoundException) が返されます。たとえば、java.lang.String クラスをロードするためにユーザー定義のローダーが必要な場合、java.lang.String は jdk のコア ライブラリ クラスであるため、ユーザー定義のローダーがロードされると実際にはブートストラップ classLoader が使用されます。ローダーが使用されると、最初に親クラス ローダーにデリゲートされます。

以上がJAVA開発におけるclassLoaderクラスロード機構の詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。