JVM之虛擬機(jī)棧

數(shù)據(jù)運(yùn)行時(shí)數(shù)據(jù)區(qū)域

Java虛擬機(jī)在執(zhí)行Java程序過(guò)程中會(huì)將它管理的內(nèi)存分成若干個(gè)不同的數(shù)據(jù)區(qū)域,不同的數(shù)據(jù)區(qū)域用途不同,內(nèi)存的管理(創(chuàng)建和銷(xiāo)毀)不同,如圖1-1是Java虛擬機(jī)中數(shù)據(jù)的區(qū)域模型圖。

圖1-1 Java 虛擬機(jī)運(yùn)行時(shí)數(shù)據(jù)區(qū)

Java虛擬機(jī)棧

Java虛擬機(jī)棧,也就是大家經(jīng)常說(shuō)的棧內(nèi)存,Java棧。每個(gè)方法在被執(zhí)行的時(shí)候Java虛擬機(jī)都會(huì)同步創(chuàng)建一個(gè)棧幀(Stack Frame),用于存儲(chǔ)局部變量表、操作數(shù)棧、動(dòng)態(tài)連接、方法返回地址等其他信息。每一個(gè)方法被調(diào)用到執(zhí)行完的過(guò)程對(duì)應(yīng)的就是每個(gè)棧幀在虛擬機(jī)中從入棧到出棧的過(guò)程。棧幀是一種基本數(shù)據(jù)數(shù)據(jù)結(jié)構(gòu)。如圖1-2所示。


圖1-2 棧幀概念結(jié)構(gòu)

局部變量表

什么是局部變量表
有什么作用
存儲(chǔ)的是什么

操作數(shù)棧

什么是操作數(shù)棧
有什么作用

動(dòng)態(tài)連接

什么是動(dòng)態(tài)連接
有什么作用

方法返回地址

是什么
有什么作用

其他信息

其他信息是什么

總結(jié)

思考

引用

  1. 《深入理解Java虛擬·JVM高級(jí)特性與最佳實(shí)踐 第3版》周志明
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 什么是JVM 相信很多小伙伴都非常熟悉了,JVM不就是虛擬機(jī)嗎?那虛擬機(jī)又是什么了?不是JVM嘛! 這不廢話(huà)嘛。 ...
    番茄番茄你個(gè)西紅柿_ff1b閱讀 267評(píng)論 0 0
  • 虛擬機(jī)棧 棧是運(yùn)行時(shí)單位,堆是存儲(chǔ)的單位; 棧解決程序運(yùn)行問(wèn)題,如何運(yùn)行,如何處理數(shù)據(jù); 堆解決數(shù)據(jù)如何存放,存放...
    lc_666閱讀 163評(píng)論 0 0
  • 虛擬機(jī)棧是程序方法執(zhí)行的地方。 虛擬機(jī)棧中每一個(gè)棧幀可以理解為一個(gè)方法。每個(gè)棧幀中包涵執(zhí)行方法所需要的操作數(shù)棧、局...
    龍龍?jiān)诤蟀胍箤?xiě)代碼閱讀 399評(píng)論 0 0
  • 每個(gè)線(xiàn)程都會(huì)在??臻g中為其分配一塊區(qū)域,即線(xiàn)程隔離。-Xss 每個(gè)線(xiàn)程的棧容量大小 棧幀 虛擬機(jī)棧中的棧元素用于支...
    想起個(gè)帥氣的頭像閱讀 3,233評(píng)論 1 0
  • 昨天跟大家聊過(guò)了關(guān)于JVM的程序計(jì)數(shù)器的細(xì)節(jié)實(shí)現(xiàn)。相比大家覺(jué)得程序計(jì)數(shù)器也不過(guò)如此吧。其實(shí)技術(shù)本無(wú)難點(diǎn)。故若高深也...
    cnJason閱讀 2,423評(píng)論 2 1

友情鏈接更多精彩內(nèi)容