Java虛擬機JVM學習01 流程概述


 

Java虛擬機JVM學習01 流程概述

 

Java虛擬機與程序的生命周期

  一個運行時的Java虛擬機(JVM)負責運行一個Java程序。

  當啟動一個Java程序時,一個虛擬機實例誕生;當程序關閉退出,這個虛擬機實例也就隨之消亡。

  如果在同一台計算機上同時運行多個Java程序,將得到多個Java虛擬機實例,每個Java程序都運行於它自己的Java虛擬機實例中。

 

  在如下幾種情況下,Java虛擬機將結束生命周期:

  1.執行了System.exit()方法

  2.程序正常執行結束

  3.程序在執行過程中遇到了異常或錯誤而異常終止

  4.由於操作系統出現錯誤而導致Java虛擬機進程終止

 

類加載器ClassLoader

  .java文件編譯生成.class文件,需要裝載到內存里面執行,裝載到內存里面這個事情就是由類加載器完成的。

 

程序執行之前,會進行類的加載、連接與初始化

 

 

  1.加載

  查找並加載類的二進制數據。  

  參見:Java虛擬機JVM學習02 類的加載概述

 

 

  2.連接

  連接又分為三個步驟:

  驗證:確保被加載類的正確性。

  即驗證class文件是否符合JVM的要求。

  准備:為類的靜態變量分配內存,並將其初始化為默認值

  解析把類中的符號引用轉換為直接引用。

  參見:Java虛擬機JVM學習03 連接過程:驗證、准備、解析

 

 

  3.初始化

  為類的靜態變量賦予正確的初始值,即在程序里為靜態變量指定的初始值,或靜態代碼塊中的賦值操作。

  靜態代碼塊是從上到下順序執行的,可以對一個靜態變量多次賦值,最后的結果為靜態變量的初始值。

   參見:Java虛擬機JVM學習04 類的初始化

 

參考資料

  聖思園張龍老師Java SE系列視頻教程。

 

 


免責聲明!

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



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