web-dev-qa-db-ja.com

Java Bootstrap Classloaderをロードしましたか?

Javaでは、すべてのクラスがクラスローダーによってロードされていると言われています。

まず最初に、bootstrap= classloaderはすべてのrt.jarクラスをロードします。

Classloaderはクラスでもあるため、私はまだ混乱していますだからだれがこのBootStrapClassloaderをロードするでしょうか

親切に説明してください。

32
Sunny Gupta

Answer:JVMが起動すると、システムクラスローダーをロードするマシンコードの特別なチャンクが実行されます。このマシンコードは、Bootstrap/Primordial(または- Null)クラスローダー。

他のすべてのクラスローダーとは異なり、Javaクラスではありません。 bootstrapクラスローダーは、クラスロードプロセス全体を開始するプラットフォーム固有のマシン命令です。

すべてのクラスローダーは、bootstrapクラスローダーを除き、Javaクラスとして実装されます。何かをロードする必要がありますプロセスを開始する最初のJavaクラスローダー。最初の純粋なJavaクラスローダーのロードは、bootstrapクラスローダーの仕事です。

bootstrapクラスローダーは、Java.utilおよびJava.langパッケージのクラスを含む、基本的なJava Runtime Environment(JRE)をサポートするために必要なすべてのコードのロードも処理します。

ソース: http://www.theserverside.com/tutorial/Classloaders-Demystified-Understanding-How-Java-Classes-Get-Loaded-in-Web-Applications

32
Raúl

Bootstrap Classloaderはクラスローダーであり、すべてが実際にはJVMコアの一部であり、ネイティブコードで記述されています。

クラスローダーはオブジェクトになることができ、表現も必要です。実際、これにより、ユーザー定義のクラスローダーを作成することもできます。

9
Fritz

英語で「彼はブートストラップで自分を引き上げた」というイディオムがあります。ブートストラップは、ブーツの上面の小さなハンドルであり、もちろん不可能です。

http://en.wikipedia.org/wiki/Booting

この記事では、ブートストラップの略であるコンピューターのブートプロセスについて説明します。

すべてのタイプのすべてのプログラムで起こることは、ある種のローダーがいくつかのバイトをメモリのどこかにコピーし、それらのバイトの事前定義された場所で実行を開始することです。

Javaの場合、ブートストラップローダーは、Javaクラスです。(誰かが知っていると思います。)ロードされたJavaコードのこれらのビットの実行を開始するJVM。たぶん、JVMコード自体をロードするかもしれません。既にロードされ、実行されている。

プロセスのほんの一部です。

4
Lee Meador