12.1、ブートクラスローダー紹介
JVM起動クラスローダに組み込まれたJVMは、特別なマシンコードの実行を開始したとき、それは拡張クラスローダとクラスローダシステムをロードします、java.lang.ClassLoaderのおよびその他のJavaプラットフォームのクラスをロードします、マシンコードのこの特別なクラスはブートローダー(ブートストラップ)と呼ばれています。
スタートクラスローダは、Javaクラスではなく、他のクラスローダは、クラスのJavaです。
スタートクラスローダは、それが全体のロードプロセスを開くための責任がある、プラットフォーム固有のマシン命令です。
(ブートクラスローダを除く)すべてのクラスローダは、Javaクラスとして実装されています。しかし、常に最初の純粋なJavaクラス・ローダをロードし、全体のロード処理を円滑に進めることができるように、最初のJavaクラス・ローダをロードするためのコンポーネントが業務を開始するためのクラスローダであるています。
スタートクラスローダはjava.utilのとのjava.langパッケージのクラスなどが含まれ、通常の動作に必要な基本的なコンポーネントのロードJREの責任となります。
12.2、sun.misc.Launcher类
拡張システムクラスローダクラスローダで定義された2つの内部クラス、あるランチャー内部クラス。「缶http://openjdk.java.net/で見る」ランチャーソースクラス。
パッケージcom.shtec.classLoader; インポートsun.misc.Launcherの、 パブリック クラスTest09 { 公共 静的 ボイドメイン(文字列[]引数){ // クラスローダは、ブートクラスローダーによりロードされる のSystem.out.println(のClassLoader。クラス。 getClassLoader()); // NULL // 内部システム及び膨張Launcherは、クラスローダを定義ヌルであり、拡張システムは、クラスローダがブートクラスローダーによりロードさ記載 のSystem.out.println(ランチャー。クラス .getClassLoader ()); // ヌル } }