看到网上这么说:
双亲委派机制描述 某个特定的类加载器在接到加载类的请求时,首先将加载任务委托给父类加载器,依次递归,如果父类加载器可以完成类加载任务,就成功返回;只有父类加载器无法完成此加载任务时,才自己去加载。
首先将加载任务委托给父类加载器,依次递归 这句话的意思是所有类都是由Object类的记载器加载的吗?
光阴似箭催人老,日月如移越少年。
Java 仮想マシンの最初のクラス ローダーはブートストラップです。このローダーは Java 仮想マシン カーネルにネストされており、C++ で書かれたバイナリ コードです。
委任メカニズムを使用すると、親クラスが再帰的に検索されます。つまり、ブートストラップを使用してロードを試行し、見つからない場合はダウンすることをお勧めします。バイトコードの 2 つのコピーがメモリ内に出現しないようにします。
クラスとクラスローダーを誤解しています。
クラスローダーを使用して、スレッド内の最初のクラスをロードします。たとえば、このクラスは ClassA で、クラスローダーは ClassLoaderA です。
簡易版、実際には 2 つ以上のクラス)。
を使用して、現在のスレッドのクラスローダーを取得できます。 getContextClassLoader()
getContextClassLoader()
Java には、システム クラス ローダーとユーザー定義クラス ローダーの 2 種類のクラス ローダーがあります。
システム クラス ローダーには、JDK1.6 の ブートストラップ クラス ローダー など、System.getProperty("sun.boot.class.path") code>クラスロードパスを取得できますBootstrap Class Loader在JDK1.6下,通过System.getProperty("sun.boot.class.path")可以得到类加载路径
ブートストラップ クラス ローダー
System.getProperty("sun.boot.class.path") code>クラスロードパスを取得できますBootstrap Class Loader在JDK1.6下,通过System.getProperty("sun.boot.class.path")可以得到类加载路径
Bootstrap Class Loader
System.getProperty("sun.boot.class.path")
JAVA_HOME\jre6\lib\resources.jar; JAVA_HOME\Java\jre6\lib\rt.jar; JAVA_HOME\jre6\lib\sunrsasign.jar; JAVA_HOME\jre6\lib\jsse.jar;JAVA_HOME\jre6\lib\jce.jar; JAVA_HOME\jre6\lib\charsets.jar; JAVA_HOME\jre6\lib\modules\jdk.boot.jar; JAVA_HOME\jre6\classes
这些路径下的class是由Bootstrap负责,其它路径下的class的递归到Bootstrap リーリー
Bootstrap
上記の人が言ったことは正しいので、JVM 関連の本を読んで詳しく学ぶことをお勧めします。
Java 仮想マシンの最初のクラス ローダーはブートストラップです。このローダーは Java 仮想マシン カーネルにネストされており、C++ で書かれたバイナリ コードです。
委任メカニズムを使用すると、親クラスが再帰的に検索されます。つまり、ブートストラップを使用してロードを試行し、見つからない場合はダウンすることをお勧めします。バイトコードの 2 つのコピーがメモリ内に出現しないようにします。
クラスとクラスローダーを誤解しています。
クラスが記録されるときは、まず現在のスレッドのクラスローダーを使用して、スレッド内の最初のクラスをロードします。たとえば、このクラスは ClassA で、クラスローダーは ClassLoaderA です。
ClassA が ClassB を参照する場合、システムは ClassLoaderA を使用して ClassB をロードします。簡易版、実際には 2 つ以上のクラス)。
ClassX と ClassY がメモリにロードされており、両方とも ClassZ を参照している状況を考えます。では、誰が ClassZ をロードするのでしょうか。を使用して、現在のスレッドのクラスローダーを取得できます。
getContextClassLoader()
Java には、システム クラス ローダーとユーザー定義クラス ローダーの 2 種類のクラス ローダーがあります。
システム クラス ローダーには、JDK1.6 の
ブートストラップ クラス ローダー
など、System.getProperty("sun.boot.class.path") code>クラスロードパスを取得できます
Bootstrap Class Loader
在JDK1.6下,通过System.getProperty("sun.boot.class.path")
可以得到类加载路径这些路径下的class是由
これらのパスのクラスはBootstrap
负责,其它路径下的class的递归到Bootstrap
リーリーBootstrap
によって処理され、他のパスのクラスがBootstrap
に再帰され、クラス ファイルが見つからない場合は、次のパスでロードされます。サーバーは、対応するパスに移動してロードします。 🎜上記の人が言ったことは正しいので、JVM 関連の本を読んで詳しく学ぶことをお勧めします。