JVM(Java Virtual Machine)整體框架結構介紹

JVM框架結構

在這裏插入圖片描述

執行Main.class的順序

  • 先通過類裝載系統把文件字節碼裝載到方法區

  • 再通過字節碼執行引擎執行相關代碼


完整 JVM 構成的三個部分

  • 類裝載子系統
  • 運行時數據區(內存模型)
  • 字節碼執行引擎

淺談堆

大家學過jdk之後,估計都知道它存放的都是new出來的對象,深一點就會知道伊甸園,倖存者區和老年代,還有gc等等


淺談棧

棧又叫虛擬機棧或線程棧,當執行一個方法時,會開闢一塊棧幀,裏面主要存放一些局部變量 ,操作數棧,動態連接,方法出口 ,執行完方法後彈棧.


淺談本地方法棧

底層有C語言實現,C語言是所有語言的前輩,爲java虛擬機提供Native方法


虛擬機棧和本地方法棧的區別

本地方法棧與虛擬機棧的作用完全一樣,在HotSpot虛擬機中,本地方法棧與虛擬機棧是同一塊內存區域。

他倆的區別無非是:

  • 本地方法棧爲虛擬機使用的Native方法服務,
  • 而虛擬機棧爲JVM執行的Java方法服務。

淺談程序計數器

  • 計數器記錄的是正在執行的虛擬機字節碼指令的地址;
  • 如果正在執行的是一個Native方法,這個計數器值爲空

簡單的說,就是看程序執行到第幾行


淺談方法區

它用於存儲已被虛擬機加載的類信息、常量、靜態變量、即編譯器編譯後的代碼等數據


淺談常量池

運行時常量池是方法區的一部分,存放字面量與符號引用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章