JVM运行时数据区概览
在學(xué)習(xí)JVM之前我們需要明確的是,我們所學(xué)習(xí)的是JVM的一個規(guī)范,在實際中有很多不同種類的虛擬機來實現(xiàn)這一種規(guī)范。其次JVM運行時數(shù)據(jù)區(qū)和JMM的區(qū)別我們要搞清楚,不能將JMM理解為JVM運行是數(shù)據(jù)區(qū)。本篇只意在使讀者對JVM運行時數(shù)據(jù)區(qū)有一個整體的了解,并沒有深入細(xì)節(jié)的探討,這樣在閱讀其他資料的時候心中有一個整體的印象。
JVM分為三大部分:類加載子系統(tǒng)、運行時數(shù)據(jù)區(qū)、執(zhí)行引擎。其中我們要講的JVM運行時數(shù)據(jù)區(qū)又包括以下的內(nèi)容,其中紅色代表的是共享數(shù)據(jù)區(qū),而綠色代表的是線程私有的數(shù)據(jù)區(qū)。我們在進(jìn)行JVM的調(diào)優(yōu)的時候就是控制紅色部分的共享數(shù)據(jù)區(qū),線程私有部分是我們無法控制的它是由JVM自動維護(hù)的。
現(xiàn)在我們來深入了解一下線程私有的部分,如下圖所示:
在棧中我們可以看到當(dāng)前棧幀,這實際上是只要調(diào)用一個方法就會形成一個棧幀,所以可以理解的是棧中存放的當(dāng)前執(zhí)行方法的私有數(shù)據(jù)。當(dāng)方法返回的時候這一棧幀就會彈出。如果結(jié)合上面兩幅圖的話,看起來更像是這樣:
總結(jié)
以上是生活随笔為你收集整理的JVM运行时数据区概览的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数组树/fenwicktree/Bina
- 下一篇: Spring Boot自动配置原理