プログラムの実行中に Constant Pool 中のクラス名/インタフェース名が参照された際, その解決処理が実行される (See: here for details). その際に, 対象のクラス/インタフェースがまだロードされていなければ, ロード処理も実行される.
(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 参照)
See: here for details
See: here for details
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.