學習《offer來了》第一天


JVM的運行機制

  jvm(Java Virtual Machine)是用於java字節碼的虛擬機,包括一套字節碼指令集,一組程序寄存器,一個虛擬機棧,一個方法區和一個垃圾回收器,jvm運行在操作系統之上,不與硬件 設備直接交互

  Java源文件在通過編譯器之后被編譯成相應的.class文件,.class文件又被jvm中的解釋器編譯成機器碼在不同的操作系統上運行,每種系統的解釋器都是不同的,但基於解釋器實現的虛擬機是相同的,這也是Java跨平台的原因,在一個java進程開始運行后,虛擬機就開始實例化了,有多個進程啟動就會實例化多個虛擬機實例,進程退出或者關閉,則虛擬機實例消亡,在多個虛擬機實例之間不能共享數據,

  Java程序的具體運行過程

第一步Java源文件編譯為字節碼文件
第二步jvm將字節碼文件編譯為相應操作系統的機器碼 
第三步機器碼調用相應操作系統的本地方法庫執行相應的方法

  Java虛擬機包括一個類加載器子系統(Class Loader SubSystem),運行時數據區(Runtime Data Area) 執行引擎和本地接口庫。本地接口庫通過調用本地方法庫與操作系統交

  運行時數據區分為:方法區,本地方法區,虛擬機棧(棧幀),虛擬機堆(老年代,新生代)程序計數器,

  類加載器子系統

  執行引擎

  本地接口庫

  本地方法庫

  最底層為操作系統

其中

  類加載器子系統用於將編譯好.class文件加載JVM中

  運行時數據區用於存儲在JVM運行過程中產生的數據,包括程序計數器,方法區,本地方法區,虛擬機棧,虛擬機堆

  執行引擎包括即時編譯器和垃圾回收器,即時編譯器用於將java字節碼編譯程具體的機器碼,垃圾回收器用於回收運行過程中不再使用的對象

  本地接口庫用於調用操作系統的本地方法庫完成具體的指令操作

 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------借鑒於《offer來了》書籍

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM