Javaクラスローダーにおけるクラスローディングの種類

Javaクラスローダーは、3つの方法でロードできます

  1. ブートストラップクラスローダー: Java仮想マシンの一部であり、rt.jarなどのJavaコアライブラリの読み込みに使用される、ルートクラスローダーとも呼ばれます。最上位のクラスローダーであり、C++で実装され、java.lang.ClassLoaderから継承されません。
  2. 拡張クラスローダー(Extension Class Loader):システムクラスローダーとも呼ばれ、Java の拡張クラス(例えば javax パッケージのクラス)をロードするために使用されます。sun.misc.Launcher$ExtClassLoader によって実装され、Java で記述され、%JAVA_HOME%/lib/ext ディレクトリ内の jar パッケージをロードするために使用されます。
  3. アプリケーションクラスローダー(Application Class Loader):ユーザーが定義したクラスローダーであり、アプリケーション内のクラスの読み込みに使用されます。sun.misc.Launcher$AppClassLoaderによって実装されており、Javaで記述されたClassLoaderクラスのサブクラスです。その主な役割は、アプリケーションのクラスパスに含まれるクラスの読み込みです。
bannerAds