私は、Javaのクラスローダの階層があることを知っている:もっと多くのクラスローダーが必要なのはなぜですか?
1.Bootstrap(ネイティブコードで)クラスローダ
2.拡張クラスローダ(sun.misc.Launcher$ExtClassLoader
)
3.システムクラスローダ(sun.misc.Launcher$AppClassLoader class
)
4 。カスタムクラスローダー(アプリサーバー、earクラスローダー、warクラスローダー)
追加の子クラスローダーが必要な理由は明らかではありません。ネイティブコードの後に「純粋なjava」クラスローダーの必要性を理解できました。
私は考えられる理由をいくつか考えていますが、誰かがこの動作/クラスローダーの階層の必要性を明確に説明してくれますか?
一般的にはj2eeにも適用されます。
クラスローダーは、 'ClassLoader'自体が到達可能である限り、ロードしたすべてのクラスを到達可能に保つ必要があります。クラスを先に収集できるようにするには、専用の新しいClassLoaderインスタンスを作成します。 –
あなたは正しいです。編集。 – chrylis