運(yùn)行時(shí)數(shù)據(jù)區(qū),執(zhí)行引擎瓢对,本地方法庫,本地庫接口
- 執(zhí)行引擎:解釋代碼
- 本地方法庫:系統(tǒng)底層方法庫(C語言)
Java虛擬機(jī)運(yùn)行時(shí)數(shù)據(jù)區(qū)
虛擬機(jī)棧胰苏,本地方法棧硕蛹,程序計(jì)數(shù)器,方法區(qū)硕并,堆法焰。
虛擬機(jī)棧:
存放引用,基本數(shù)據(jù)類型倔毙,方法局部變量本地方法棧:
存放在java中本地方法的聲明
通過JNI(Java Native Interface)技術(shù)調(diào)用程序計(jì)數(shù)器:
行號(hào)指示器壶栋,正在執(zhí)行的虛擬機(jī)指令的地址。
JVM中唯一沒有OOM的區(qū)域堆:
對(duì)象實(shí)例
ps:棧上分配普监,標(biāo)量替換技術(shù)使有些小對(duì)象在棧不在堆
新生代(Eden+2Survivor)贵试,老年代方法區(qū):
類信息,常量凯正,靜態(tài)變量毙玻,編譯后代碼
People p = new People(); 在堆上還是棧上分配?
People p = new People();
分為三步:
-
People p;
p為一個(gè)變量 -> 在棧上分配內(nèi)存 -
new People();
在堆上生成對(duì)象 -
p = new People
棧上變量p指向堆上People對(duì)象地址