Up Top

Class のロード/リンク/初期化 : ロード処理の開始点 : 実行時コンスタントプールのシンボルの解決(resolution)に伴うロード処理


概要(Summary)

プログラムの実行中に Constant Pool 中のクラス名/インタフェース名が参照された際, その解決処理が実行される (See: here for details). その際に, 対象のクラス/インタフェースがまだロードされていなければ, ロード処理も実行される.

処理の流れ (概要)(Execution Flows : Summary)

(See: here for details)
-> constantPoolOopDesc::klass_at()
   -> constantPoolOopDesc::klass_at_impl() (※)
      -> * 既に一度解決済みの場合 (= 以前の結果が Constant Pool 中に記録されている場合):
           -> Constant Pool 中の値をリターンするだけ
         * まだ解決されていない場合: 
           -> SystemDictionary::resolve_or_fail()
              -> (See: here for details)

(※) なお, この関数はクラスローダーとして「この Constant Pool を保持するクラスをロードしたクラスローダ ("defining class loader")」を使用. (JVMS 5.4.3.1 参照)

処理の流れ (詳細)(Execution Flows : Details)

constantPoolOopDesc::klass_at()

See: here for details

constantPoolOopDesc::klass_at_impl()

See: here for details


This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.