400-650-7353
您所在的位置:首頁 > IT干貨資料 > java > 【Java基礎知識】什么是JVM?JVM內存模型由什么組成?(下)

【Java基礎知識】什么是JVM?JVM內存模型由什么組成?(下)

  • 發布: java培訓
  • 來源:
  • 2023-08-18 16:31:00
  • 閱讀()
  • 分享
  • 手機端入口

虛擬機棧(JVM Stack)

虛擬機棧(Java Virtual Machine Stack),早期也叫Java棧,每個線程在創建時都會創建一個虛擬機棧,其內部保存一個個的棧幀(Stack Frame),對應著一次次的Java方法調用。

虛擬機棧的作用:主管Java程序的運行,它保存方法的局部變量、部分結果,并參與方法的調用和返回。

每個方法被執行的時候都會創建一個”棧幀”,用于存儲局部變量表(包括參數)、操作棧、方法出口等信息。

每個方法被調用到執行完的過程,就對應著一個棧幀在虛擬機棧中從入棧到出棧的過程。

棧幀(Stack Frame) 是用于虛擬機執行時方法調用和方法執行時的數據結構,它是虛擬棧的基本元素,棧幀由局部變量區、操作數棧等組成,如下圖所示:

每一個方法從調用到方法返回都對應著一個棧幀入棧出棧的過程。最頂部的棧幀稱為當前棧幀,棧幀所關聯的方法稱為當前方法,定義這個方法的類稱為當前類,該線程中,虛擬機有且也只會對當前棧幀進行操作。

棧幀的作用有存儲數據,部分過程結果,處理動態鏈接,方法返回值和異常分派。

每一個棧幀包含的內容有局部變量表、操作數棧、動態鏈接、方法返回地址和一些額外的附加信息。在編譯代碼時,棧幀需要多大的局部變量表,多深的操作數棧都可以完全確定的,并寫入到方法表的code屬性中。

本地方法棧(Native Stack)

本地方法棧(Native Method Stacks)與虛擬機棧所發揮的作用是非常相似的,其區別不過是虛擬機棧為虛擬機執行Java 方法(也就是字節碼)服務,而本地方法棧則是為虛擬機使用到的Native 方法服務。

虛擬機規范中對本地方法棧中的方法使用的語言、使用方式與數據結構并沒有強制規定,因此具體的虛擬機可以自由實現它。

甚至有的虛擬機(譬如Sun HotSpot 虛擬機)直接就把本地方法棧和虛擬機棧合二為一。

與虛擬機棧一樣,本地方法棧區域也會拋出StackOverflowError 和OutOfMemoryError異常。

程序計數器(PC Register)

在JVM的概念模型里,字節碼解釋器工作時就是通過改變這個計數器的值來選取下一條需要執行的字節碼指令。

分支、循環、跳轉、異常處理、線程恢復等基礎功能都需要依賴這個計數器來完成。

JVM的多線程是通過線程輪流切換并分配處理器執行時間的方式來實現的,為了各條線程之間的切換后計數器能恢復到正確的執行位置,所以每條線程都會有一個獨立的程序計數器。

當線程正在執行一個Java方法,程序計數器記錄的是正在執行的JVM字節碼指令的地址;如果正在執行的是一個Native(本地方法),那么這個計數器的值則為空(Underfined)。

程序計數器占用的內存空間很少,也是唯一一個在JVM規范中沒有規定任何OutOfMemoryError(內存不足錯誤)的區域。

文章“【Java基礎知識】什么是JVM?JVM內存模型由什么組成?(下)”已幫助

更多內容

>>本文地址:http://www.028benet.com/zhuanye/2023/72419.html

THE END  

聲明:本站稿件版權均屬中公教育優就業所有,未經許可不得擅自轉載。

1 您的年齡

2 您的學歷

3 您更想做哪個方向的工作?

獲取測試結果
  • 大前端大前端
  • 大數據大數據
  • 互聯網營銷互聯網營銷
  • JavaJava
  • Linux云計算Linux
  • Python+人工智能Python
  • 嵌入式物聯網嵌入式
  • 全域電商運營全域電商運營
  • 軟件測試軟件測試
  • 室內設計室內設計
  • 平面設計平面設計
  • 電商設計電商設計
  • 網頁設計網頁設計
  • 全鏈路UI/UE設計UI設計
  • VR/AR游戲開發VR/AR
  • 網絡安全網絡安全
  • 新媒體與短視頻運營新媒體
  • 直播帶貨直播帶貨
  • 智能機器人軟件開發智能機器人
 

快速通道fast track

近期開班時間TIME

主站蜘蛛池模板: 亚洲av午夜国产精品无码中文字| 欧美sss视频| 女人被狂c躁到高潮视频| 哦太大了太涨了慢一点轻一点| 国产色综合久久无码有码| 国产大学生粉嫩无套流白浆 | 亚洲av无码国产综合专区| 手机在线观看视频你懂的| 欧美另类黑人巨大videos| 好男人看视频免费2019中文| 午夜寂寞视频无码专区| 一区二区精品在线| 51在线视频免费观看视频| 精品无码一区二区三区爱欲 | 大学生男男澡堂69gaysex| 国产丝袜无码一区二区三区视频 | 能看毛片的网站| 日本zzzzwww大片免费| 国产jizzjizz免费视频| 亚洲人成77777在线播放网站| 2023天天操| 日韩国产成人精品视频| 国产中文99视频在线观看| 中国欧美日韩一区二区三区| 窝窝午夜色视频国产精品东北| 天堂√最新版中文在线| 亚洲欧洲日产韩国在线| 色噜噜视频影院| 日本大乳高潮视频在线观看| 四虎免费久久影院| 久久精品国产精品亚洲色婷婷| 西西人体大胆扒开瓣| 最好看的2019中文无字幕| 国产午夜精品久久久久免费视| 中文字幕日本精品一区二区三区| 精品久久久久久无码人妻蜜桃| 日韩在线免费视频| 国产r67194吃奶视频| vvvv99日韩精品亚洲| 羞羞视频免费网站含羞草| 女人张开腿让男人捅爽|