深入剖析JVM虛擬機的內部結構
這里向大家描述一下JVM虛擬機的內部結構,JVM主要分為6個部分,包括JVM解釋器,寄存器,JVM棧,存儲區和碎片回收區,相信本文介紹一定會讓你有所收獲。
JVM虛擬機的內部結構
JVM虛擬機是Java平臺的核心, 為了讓編譯產生的字節碼能夠更好的解釋和執行,JVM主要分為6個部分【這里只是帶過,想要了解JVM整體執行原理的讀者可以去參考《Inside JVM》】:
JVM解釋器:即這個虛擬機處理字段碼的 CPU。
JVM指令系統:該系統與計算機很相似,一條指 令由操作碼和操作數兩部分組成。操作碼為8位二進制數,主要是為了說明一條指令的功能,操作數可以根據需要而定,JVM虛擬機有多達256種不同的操作指令。
寄存器:JVM有自己的虛擬寄存器,這樣就可以 快速地與JVM的解釋器進行數據交換。為了功能的需要,JVM虛擬機設置了4個常用的32位寄存器:pc(程序計數器)、 optop(操作數棧頂指針)、frame(當前執行環境指針)和vars(指向當前執行環境中***個局部變量的指針)。
JVM棧:指令執行時數據和信息存儲的場所和控 制中心,它提供給JVM解釋器運算所需要的信息。
存儲區:JVM存儲區用于存儲編譯過后的字節碼 等信息。
碎片回收區:JVM碎片回收是指將使用過的 Java類的具體實例從內存進行回收,這就使得開發人員免去了自己編程控制內存的麻煩和危險。隨著JVM的不斷升級,其碎片回收的技術和算法也更加合理。 JVM 1.4.1版后產生了一種叫分代收集技術,簡單來說就是利用對象在程序中生存的時間劃分成代,以此為標準進行碎片回收。
【編輯推薦】
- 設置TOMCAT的JVM虛擬機內存大小
- JVM、JRE、JDK的區別和聯系
- 探索Java工作原理之JVM內存回收
- 實例解析Linux平臺的JVM性能評測
- 深入JVM:ClassLoader相關知識簡介