? ?java虛擬機(jī)在執(zhí)行程序的過(guò)程中會(huì)把它管理的內(nèi)存劃分為若干個(gè)不同的數(shù)據(jù)區(qū)专钉,包括
1. 程序計(jì)數(shù)器捺典。線程私有的內(nèi)存娇斩,存儲(chǔ)當(dāng)前線程字節(jié)碼指令茅主,每個(gè)線程都需要有一個(gè)私有的程序計(jì)數(shù)器部念,以便線程切換時(shí)能恢復(fù)到正確的執(zhí)行位置弃酌。
2. java虛擬機(jī)棧。線程私有儡炼,生命周期與線程相同妓湘。存儲(chǔ)局部變量表,操作數(shù)棧乌询,動(dòng)態(tài)鏈接榜贴,方法出口等。
3. 本地方法棧妹田。類(lèi)似虛擬機(jī)棧唬党,虛擬棧為虛擬機(jī)執(zhí)行java方法(字節(jié)碼)服務(wù),本地方法棧為虛擬機(jī)使用到的Native方法(非java語(yǔ)言編寫(xiě)的方法)服務(wù)鬼佣。
4. java堆驶拱。所有線程共享的一塊內(nèi)存區(qū)域。所有對(duì)象實(shí)例以及數(shù)組都要在堆上分配沮趣。垃圾收集器管理的主要區(qū)域屯烦。
5. 方法區(qū)。各個(gè)線程共享的內(nèi)存區(qū)域房铭。用于存儲(chǔ)虛擬機(jī)加載的類(lèi)信息驻龟,常量,靜態(tài)變量缸匪,即使編譯器編譯后的代碼等數(shù)據(jù)翁狐。
圖片發(fā)自簡(jiǎn)書(shū)App