ciObject クラスの具象サブクラスの1つ. instanceOopDesc 用の ciObject クラス (ただし java.lang.invoke.MethodHandle オブジェクトと java.lang.invoke.CallSite オブジェクトは除く. 備考参照).
((cite: hotspot/src/share/vm/ci/ciInstance.hpp))
// ciInstance
//
// This class represents an instanceOop in the HotSpot virtual
// machine. This is an oop which corresponds to a non-array
// instance of java.lang.Object.
class ciInstance : public ciObject {
以下の箇所に格納されている (#TODO 他の箇所).
unresolved なクラスのインスタンスを表す ciInstance オブジェクトが格納されている.
(正確には, このフィールドは ciInstance の GrowableArray を格納するフィールド. この中に, ciObjectFactory::get_unloaded_instance() で生成された全ての ciInstance オブジェクトが格納されている)
以下の箇所で(のみ)生成されている.
(ファクトリメソッド)
(こちらは unresolved なクラスのインスタンス用. なお, 一度生成したオブジェクトは ciObjectFactory::_unloaded_instances フィールドにメモイズされる)
java.lang.invoke.MethodHandle オブジェクトと java.lang.invoke.CallSite オブジェクトについては, 最適化する上で重要なので特別にサブクラスが用意されている (See: ciMethodHandle, ciCallSite).
See: here for details
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.