Java VM(Virtual Machine)
クラスのロード
- JVMはクラスをロードするためにクラスローダを使っている。
- クラスローダーは1種類ではなく、JVMは用途によって複数のクラスローダーを使い分けている。
- クラスローダーは独自に定義(クラスを作成)することも可能。
クラスローダーの特徴
- クラスローダーによるクラスのロード手順は以下のようになっている
- クラスのロードを依頼される: loadClass()
- 既にロードされていないか調べ、ロード済みであればそれを返す
- 無い場合は、親クラスローダ(無い場合はブートストラップクラスローダ)に処理を委譲(delegation)する
- 委譲先でロードできなければ自身でクラスファイルを探してロードしようとする: findClass()
- ロードする:クラスファイルを探して、defineClassメソッドにファイルパス?を渡してやる
クラスローダーにはどんなものがあるか
- クラスローダーは抽象クラスjava.lang.ClassLoaderの派生クラスである。
- java.security.SecureClassLoader
- java.net.URLClassLoader
まだようわからんこと
- 各種クラスローダーはどんな役割を担っているのか、JVMがどのように使い分けているのか。
最終更新:2011年04月05日 23:07