Java程式設計技術之淺析JVM記憶體
阿新 • • 發佈:2020-06-08
### JVM
>JVM->Java Virtual Machine:Java虛擬機器,是一種用於計算裝置的規範,它是一個虛構出來的計算機,是通過在實際的計算機上模擬模擬各種計算機功能來實現的。
![file](https://img2020.cnblogs.com/other/1778572/202006/1778572-20200608161741197-1010927794.jpg)
基本認知:
* 1.JVM是用於執行Java程式碼的假象計算機,主要有一套位元組碼指令集,一組暫存器,一個棧,一個垃圾回收,堆 和 一個儲存方法域。
* 2.JVM執行在作業系統之上,與硬體沒有直接的互動。
Java程式執行過程:
![file](https://img2020.cnblogs.com/other/1778572/202006/1778572-20200608161741599-547943637.jpg)
* 1.編譯->原始檔由編譯器編譯成位元組碼[ByteCode]
>Java 原始檔—->編譯器—->位元組碼檔案
* 2.執行->位元組碼由java虛擬機器解釋執行
>位元組碼檔案—->JVM—->機器碼
Java類的載入步驟:
* 1.載入->主要是完成3個階段的提交:
>通過類的全限定名來獲取定義類的二進位制位元組流
>將位元組流所代表的靜態儲存結構轉化為方法區的執行時資料結構
>在記憶體中生成一個代表這個類的java.lang.Class物件,作為方法區這個類的各種資料的訪問入口。
* 2.驗證->四個階段的檢驗動作:
>檔案格式驗證
>元資料驗證
>位元組碼驗證
>符號引用驗證
* 3.準備->為類變數(static)分配記憶體並設定類變數的初始值。
* 4.解析->將常量池內的符號引用轉為直接的引用
* 5.初始化->按照static塊和static變數在檔案中的出現順序,