1. 程式人生 > >一圖讀懂Java架構

一圖讀懂Java架構

一圖讀懂Java架構:

image.png

1,Java 類載入過程
類載入過程

2,Java 記憶體分割槽

方法區

堆區

虛擬機器棧區

程式技術器

本地方法棧

後三個都是執行緒私有

3,Java執行引擎

直譯器 + JIT實時編譯 +垃圾回收

儘管並不是所有的Java虛擬機器都採用直譯器與編譯器並存的架構,但許多主流的商用虛擬機器(如HotSpot),都同時包含直譯器和編譯器。

直譯器與編譯器兩者各有優勢:當程式需要迅速啟動和執行的時候,直譯器可以首先發揮作用,省去編譯的時間,立即執行。在程式執行後,隨著時間的推移,編譯器逐漸發揮作用,把越來越多的程式碼編譯成原生代碼之後,可以獲取更高的執行效率。當程式執行環境中記憶體資源限制較大(如部分嵌入式系統中),可以使用直譯器執行節約記憶體,反之可以使用編譯執行來提升效率。此外,如果編譯後出現“罕見陷阱”,可以通過逆優化退回到解釋執行。

HotSpot虛擬機器中內建了兩個即時編譯器:Client Complier和Server Complier,簡稱為C1、C2編譯器,分別用在客戶端和服務端。用Client Complier獲取更高的編譯速度,用Server Complier 來獲取更好的編譯質量。

垃圾回收器的介紹

垃圾回收器的介紹