程序計數(shù)器(Program Counter Register)
這和計算機操作系統(tǒng)中的程序計數(shù)器類似,在計算機操作系統(tǒng)中程序計數(shù)器表示這個進程要執(zhí)行的下個指令的地址,對于JVM中的程序計數(shù)器可以看做是當(dāng)前線程所執(zhí)行的字節(jié)碼的行號指示器,每個線程都有一個程序計數(shù)器(這很好理解,每個線程都有在執(zhí)行任務(wù),如果線程切換后要能保證能恢復(fù)到正確的位置),重要的一點——程序計數(shù)器,這是JVM規(guī)范中唯一一個沒有規(guī)定會導(dǎo)致OutOfMemory(內(nèi)存泄露,下文簡稱OOM)的區(qū)域。換句話上圖中的其余4個區(qū)域,都有可能導(dǎo)致OOM。
☆虛擬機棧(Java Virtual Machine Stacks)
這塊內(nèi)存區(qū)域就是我們常常說的“棧”,我們所熟知的是它用于存放變量,也就是說例如:
int i = 0;