クラスのリンク処理は 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.