1. 程式人生 > >HotSpot原始碼的簡單分析

HotSpot原始碼的簡單分析

前言

 想要分析一個專案的原始碼,首先要知道這個專案的目錄結構,然後再根據結構進行拆分分析,HotSpot在解壓後發現,主要由四個子目錄組成了整個專案

  1. agent:包含了Serviceability Agent 的 客戶 端 實現;
  2. make:包含了使用者build出HotSpot的各種元件
  3. src:最重要的目錄,包含了原始碼實現,如果說cpu實現,作業系統實現,與平臺無關性實現
  4. test:包含了一些測試用例

下面是HotSpot的結構圖(注:摘取子java虛擬機器精講)

Launcher簡介:

 Launcher是一種用於啟動jvm程序的啟動器,具體可以劃分為兩種,也就是我們在windows下面使用的java. exe 和 javaw. exe 程式,他們的區別就是是否會保留控制檯並列印程式的輸出資訊,它的具體使用方法可以使用-help來進行

Launcher銷燬虛擬機器

在執行完成主程序之後,虛擬機器會與其斷開連線,然後等待所有的非守護程序結束之後,將jvm虛擬機器進行銷燬,注意:在程式中,可以顯示的使用System.exit(0)對jvm進行顯示的銷燬,這也是如果使用了System.exit(0)之後,finally塊中的語句會停止執行的原因,但如果顯示的使用了System.exit的話,Launcher就不會在呼叫銷燬jvm的函數了