実行中に Constant Pool 中の各シンボルが参照されると, その具体的な値を探す処理(解決処理)が行われる (See: here for details).
実際の解決処理は constantPoolOopDesc クラス及び LinkResolver クラスに実装されている (#TODO) (See: here for details).
クラス名/インタフェース名の解決処理では, 処理の高速化のため, 初回に解決した結果を constantPoolOopDesc 内にキャッシュしている. また文字列オブジェクトの解決時にも同様にキャッシュしている (See: here for details).
インタープリタでは, フィールド名やメソッド名の解決時処理を高速化するために, constantPoolCacheOop オブジェクトを用いて一度行った解決結果をキャッシュしている (See: here for details).
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.