JavaEtc > JVM

Java VM(Virtual Machine)

クラスのロード

  • JVMはクラスをロードするためにクラスローダを使っている。
  • クラスローダーは1種類ではなく、JVMは用途によって複数のクラスローダーを使い分けている。
  • クラスローダーは独自に定義(クラスを作成)することも可能。

クラスローダーの特徴

  • クラスローダーによるクラスのロード手順は以下のようになっている
  1. クラスのロードを依頼される: loadClass()
  2. 既にロードされていないか調べ、ロード済みであればそれを返す
  3. 無い場合は、親クラスローダ(無い場合はブートストラップクラスローダ)に処理を委譲(delegation)する
  4. 委譲先でロードできなければ自身でクラスファイルを探してロードしようとする: findClass()
  • ロードする:クラスファイルを探して、defineClassメソッドにファイルパス?を渡してやる

クラスローダーにはどんなものがあるか

  • クラスローダーは抽象クラスjava.lang.ClassLoaderの派生クラスである。
  • java.security.SecureClassLoader
  • java.net.URLClassLoader

まだようわからんこと

  • 各種クラスローダーはどんな役割を担っているのか、JVMがどのように使い分けているのか。
最終更新:2011年04月05日 23:07