クラスのリンク処理は instanceKlass::link_class() (より正確には instanceKlass::link_class_impl()) で行われる.
リンク処理では, 以下の処理が行われる.
バイトコードの verification 処理 (See: here for details)
バイトコードの rewrite 処理, 及び rewrite に伴う再配置 (See: here for details)
クラス内の vtable, itable の作成
instanceKlass::link_class() -> instanceKlass::link_class_impl() -> (1) バイトコードの verification を行う -> instanceKlass::verify_code() -> Verifier::verify() -> (See: here for details) (1) バイトコードの rewrite 処理を行う -> instanceKlass::rewrite_class() -> Rewriter::rewrite() -> (See: here for details) (1) -> instanceKlass::relocate_and_link_methods() -> Rewriter::relocate_and_link(instanceKlassHandle this_oop, TRAPS) -> (See: here for details) (1) vtable 及び itable を生成する -> klassVtable::initialize_vtable() -> klassItable::initialize_itable()
See: here for details
See: here for details
See: here for details
See: here for details
See: here for details
(#Under Construction) See: here for details
See: here for details
See: here for details
See: here for details
See: here for details
(#Under Construction)
(#Under Construction)
See: here for details
(#Under Construction) See: here for details
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.