HotSpot原始碼的簡單分析
阿新 • • 發佈:2018-12-18
前言
想要分析一個專案的原始碼,首先要知道這個專案的目錄結構,然後再根據結構進行拆分分析,HotSpot在解壓後發現,主要由四個子目錄組成了整個專案
- agent:包含了Serviceability Agent 的 客戶 端 實現;
- make:包含了使用者build出HotSpot的各種元件
- src:最重要的目錄,包含了原始碼實現,如果說cpu實現,作業系統實現,與平臺無關性實現
- 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的函數了