學(xué)過(guò)
JVM
的人都知道在JVM中在執(zhí)行Java程序的過(guò)程中會(huì)把JVM管理的內(nèi)存進(jìn)行劃分,叫做
運(yùn)行時(shí)數(shù)據(jù)區(qū)。
JVM
中管理的內(nèi)存主要分為以下五個(gè)部分:
方法區(qū)(Method Area
):
Java堆(Heap
):Java堆是JVM管理內(nèi)存中最大的一塊區(qū)域,幾乎所有的Java對(duì)象的內(nèi)存都在這里分配,此區(qū)域也是GC最活躍的區(qū)域。
虛擬機(jī)棧(VM Stack
):此區(qū)域就是我們通常所說(shuō)的“棧”,當(dāng)線程執(zhí)行方法時(shí)會(huì)在此區(qū)域創(chuàng)建一個(gè)棧幀,用于儲(chǔ)存局部變量表、動(dòng)態(tài)鏈接、方法出口等信息。
本地方法棧(Native Method Stack
):本地方法棧虛擬機(jī)棧類似,只不過(guò)本地方法棧執(zhí)行的是Native方法服務(wù)。
程序計(jì)數(shù)器(Program Counter Register
):是當(dāng)前線程執(zhí)行字節(jié)碼的行號(hào)指令器,是線程私有的。
當(dāng)執(zhí)行一個(gè)Java方法時(shí),程序計(jì)數(shù)器記錄的是JVM正在執(zhí)行的字節(jié)碼指令,若是執(zhí)行的是本地方法,程序計(jì)數(shù)器為空。
特別推薦一個(gè)分享架構(gòu)+算法的優(yōu)質(zhì)內(nèi)容,還沒(méi)關(guān)注的小伙伴,可以長(zhǎng)按關(guān)注一下:
長(zhǎng)按訂閱更多精彩▼
如有收獲,點(diǎn)個(gè)在看,誠(chéng)摯感謝
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問(wèn)題,請(qǐng)聯(lián)系我們,謝謝!