JVM內(nèi)存結(jié)構(gòu)



由上圖可知,java內(nèi)存主要分為6部分伴郁,分別是程序計(jì)數(shù)器,虛擬機(jī)棧焊傅,本地方法棧,堆狐胎,方法區(qū)和直接內(nèi)存,下面將逐一詳細(xì)描述鸭栖。

1顽爹、程序計(jì)數(shù)器

線程私有,即每個(gè)線程都會有一個(gè)镜粤,線程之間互不影響,獨(dú)立存儲肉渴。

代表著當(dāng)前線程所執(zhí)行字節(jié)碼的行號指示器公荧。2同规、虛擬機(jī)棧

線程私有它的生命周期和線程相同券勺。

描述的是java方法執(zhí)行的內(nèi)存模型:每個(gè)方法在執(zhí)行的同時(shí)多會創(chuàng)建一個(gè)棧幀用于存儲局部變量表、操作數(shù)棧关炼、動態(tài)鏈表程腹、方法出口等信息儒拂。

每一個(gè)方法從調(diào)用直至完成的過程色鸳,就對應(yīng)著一個(gè)棧幀在虛擬機(jī)中入棧到出棧的過程。

局部變量表存放了編譯期可知的各種基本數(shù)據(jù)類型和對象引用见转,所需內(nèi)存空間在編譯期確定命雀。

-Xoss參數(shù)設(shè)置本地方法棧大小(對于HotSpot無效

-Xss參數(shù)設(shè)置棧容量 例:?-Xss128k

3斩箫、本地方法棧

同虛擬機(jī)棧吏砂,只不過本地方法棧位虛擬機(jī)使用到的native方法服務(wù)。

Sun HotSpot虛擬機(jī)把本地方法棧和虛擬機(jī)棧合二為一乘客。

4赊抖、java堆

線程共享

主要用于分配對象實(shí)例和數(shù)組。

-Xms參數(shù)設(shè)置最小值

-Xmx參數(shù)設(shè)置最大值 例:VM Args:?-Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryError

若-Xms=-Xmx,則可避免堆自動擴(kuò)展寨典。

-XX:+HeapDumpOnOutOfMemoryError可以讓虛擬機(jī)在出現(xiàn)內(nèi)存溢出是dump出當(dāng)前的內(nèi)存堆轉(zhuǎn)儲快照。

5房匆、方法區(qū)

線程共享

用于存儲已被虛擬機(jī)加載的類信息耸成、常量、靜態(tài)變量浴鸿、即使編譯后的代碼等數(shù)據(jù)井氢。

別名永久代(Permanent Generation)

-XX:MaxPermSize設(shè)置上限

-XX:PermSize設(shè)置最小值 例:VM Args:-XX:PermSize=10M -XX:MaxPermSize=10M

運(yùn)行時(shí)常量池(Runtime Constant Pool)是方法區(qū)的一部分

Class文件中除了有類的版本岳链、字段花竞、方法、接口等信息外掸哑,還有一項(xiàng)是常量池(Constant Pool Table),用于存放編譯期生成的各種字面量和符號引用约急,這部分內(nèi)容將在類加載后進(jìn)入方法區(qū)的運(yùn)行時(shí)常量池中存放

運(yùn)行時(shí)常量池相對于Class文件常量池的一個(gè)重要特征是具備動態(tài)性:即除了Class文件中常量池的內(nèi)容能被放到運(yùn)行時(shí)常量池外苗分,運(yùn)行期間也可能將新的常量放入池中厌蔽,比如String類的intern()方法。

6摔癣、直接內(nèi)存

直接內(nèi)存并不是虛擬機(jī)運(yùn)行時(shí)數(shù)據(jù)區(qū)的一部分奴饮。

在NIO中,引入了一種基于通道和緩沖區(qū)的I/O方式择浊,它可以使用native函數(shù)直接分配堆外內(nèi)存戴卜,然后通過一個(gè)存儲在java堆中的DirectByteBuffer對象作為這塊內(nèi)存的引用進(jìn)行操作。

-XX:MaxDirectMemorySize設(shè)置最大值琢岩,默認(rèn)與java堆最大值一樣投剥。

:-XX:MaxDirectMemorySize=10M -Xmx20M

對于32位操作系統(tǒng)來說,系統(tǒng)最大內(nèi)存為4G粘捎。

系統(tǒng)給每個(gè)進(jìn)程的內(nèi)存是有限制的薇缅,譬如32位的windows 限制為2G


作者??chaofanwei

轉(zhuǎn)載自:?https://blog.csdn.net/chaofanwei/article/details/19418753

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末危彩,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子泳桦,更是在濱河造成了極大的恐慌汤徽,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,639評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件灸撰,死亡現(xiàn)場離奇詭異谒府,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)浮毯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評論 3 385
  • 文/潘曉璐 我一進(jìn)店門完疫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人债蓝,你說我怎么就攤上這事壳鹤。” “怎么了饰迹?”我有些...
    開封第一講書人閱讀 157,221評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長啊鸭。 經(jīng)常有香客問我,道長赂摆,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,474評論 1 283
  • 正文 為了忘掉前任烟号,我火速辦了婚禮褥符,結(jié)果婚禮上抚垃,老公的妹妹穿的比我還像新娘。我一直安慰自己铣焊,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,570評論 6 386
  • 文/花漫 我一把揭開白布曲伊。 她就那樣靜靜地躺著坟募,像睡著了一般。 火紅的嫁衣襯著肌膚如雪涤妒。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,816評論 1 290
  • 那天她紫,我揣著相機(jī)與錄音屿储,去河邊找鬼。 笑死民褂,一個(gè)胖子當(dāng)著我的面吹牛疯潭,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播袁勺,決...
    沈念sama閱讀 38,957評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼期丰,長吁一口氣:“原來是場噩夢啊……” “哼吃挑!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起舶衬,我...
    開封第一講書人閱讀 37,718評論 0 266
  • 序言:老撾萬榮一對情侶失蹤逛犹,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后虽画,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,176評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡渗柿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,511評論 2 327
  • 正文 我和宋清朗相戀三年朵栖,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片陨溅。...
    茶點(diǎn)故事閱讀 38,646評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖狠鸳,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情件舵,我是刑警寧澤脯厨,帶...
    沈念sama閱讀 34,322評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站临梗,受9級特大地震影響稼跳,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜汤善,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,934評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望不狮。 院中可真熱鬧在旱,春花似錦、人聲如沸桶蝎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽绍豁。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間邪铲,已是汗流浹背无拗。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評論 1 266
  • 我被黑心中介騙來泰國打工英染, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留揽惹,地道東北人搪搏。 一個(gè)月前我還...
    沈念sama閱讀 46,358評論 2 360
  • 正文 我出身青樓疯溺,卻偏偏與公主長得像蹋嵌,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子儿捧,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,514評論 2 348