Up Top

(#TBD) Class のロード/リンク/初期化 : ロード処理の開始点 : HotSpot 起動時における標準ライブラリクラスのロード処理


概要(Summary)

標準ライブラリのクラスの幾つかは HotSpot の起動処理中にロードされる (java.lang.Object, java.lang.Thread, 等).

(この処理は Threads::create_vm() 内で呼び出される各種の関数内で行われる模様. (<= 他にないか?#TODO))

処理の流れ (概要)(Execution Flows : Summary)

(HotSpot の起動時処理) (See: here for details)
-> Threads::create_vm()
   -> init_globals()
      -> universe2_init()
         -> Universe::genesis()
            -> SystemDictionary::initialize()
               -> SystemDictionary::initialize_preloaded_classes()
                  -> 
      -> universe_post_init()
         -> 

   -> initialize_class()  (※)
      -> (1) 対象クラスを取得する. まだロードされていなければロードも行う.
             -> SystemDictionary::resolve_or_fail()
                -> (See: here for details)

         (2) 対象クラスのリンクおよび初期化を行う
             -> instanceKlass::initialize()
                -> (See: here for details)

(※) なお, この関数はクラスローダーとして「ブートストラップ・クラスローダ」を使用.

処理の流れ (詳細)(Execution Flows : Details)

Threads::create_vm()

See: here for details

universe_post_init()

See: here for details

initialize_class()

See: here for details


This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.