jvm內存劃分

jvm內存共分為虛擬機棧瞄崇,堆 员串,方法區(qū)勇哗,程序計數(shù)器,本地方法區(qū)五個部分寸齐。

程序計數(shù)器(線程私有):

  是當前線程所執(zhí)行的字節(jié)碼的行號指示器欲诺,每條線程都要有一個獨立的程序計數(shù)器,這類內存也稱為“線程私有”的內存渺鹦。

正在執(zhí)行java方法的話扰法,計數(shù)器記錄的是虛擬機字節(jié)碼指令的地址(當前指令的地址)。如果還是Native方法毅厚,則為空塞颁。

這個內存區(qū)域是唯一一個在虛擬機中沒有規(guī)定任何OutOfMemoryError情況的區(qū)域。


Java虛擬機棧(線程私有):

  也是線程私有的。

每個方法在執(zhí)行的時候會創(chuàng)建一個棧幀祠锣,存儲了局部變量表酷窥,操作數(shù)棧,動態(tài)連接锤岸,方法返回地址等竖幔。

  每個方法從調用到執(zhí)行完畢,對應一個棧幀在虛擬機棧中的入棧和出棧是偷。

  通常所說的棧拳氢,一般是指虛擬機棧中的局部變量表部分。

  局部變量表所需的內存在編譯期間完成分配蛋铆。

  如果線程請求的棧深度大于虛擬機所允許的深度馋评,則StackOverflowError。

如果虛擬機棿汤玻可以動態(tài)擴展留特,擴展到無法申請足夠的內存,則OutOfMemoryError玛瘸。


本地方法棧(線程私有):

  和虛擬機棧類似蜕青,主要為虛擬機使用到的Native方法服務。

  也會拋出StackOverflowError和OutOfMemoryError糊渊。


Java堆(線程共享):

被所有線程共享的一塊內存區(qū)域右核,在虛擬機啟動時創(chuàng)建,用于存放對象實例渺绒。

  堆可以按照可擴展來實現(xiàn)(通過-Xmx和-Xms來控制)

  當堆中沒有內存可以分配給實例贺喝,也無法再擴展時,則拋出OutOfMemoryError異常宗兼。


方法區(qū)(線程共享):

  被所有線程共享的一塊內存區(qū)域躏鱼。

  用于存儲已被虛擬機加載的類信息殷绍,常量染苛,靜態(tài)變量等主到。

  這個區(qū)域的內存回收目標主要針對常量池的回收和對類型的卸載。

  當方法區(qū)無法滿足內存分配需求時镰烧,則拋出OutOfMemoryError異常拢军。

  在HotSpot虛擬機中,用永久代來實現(xiàn)方法區(qū)怔鳖,將GC分代收集擴展至方法區(qū),但是這樣容易遇到內存溢出的問題。

JDK1.7中度陆,已經(jīng)把放在永久代的字符串常量池移到堆中。

  JDK1.8撤銷永久代懂傀,引入元空間趾诗。


運行時常量池:

是方法區(qū)的一部分,用于存放編譯期生成的各種字面量和符號引用蹬蚁。

  當常量池無法再申請到內存時恃泪,則拋出OutOfMemoryError異常犀斋。


直接內存:

  不是運行時數(shù)據(jù)區(qū)的一部分,但也可能拋出OutOfMemoryError異常叽粹。

  在JDK1.4中新加入的NOI類,引入了一種基于通道與緩沖區(qū)的I/O方式虫几,它可以使用Native函數(shù)直接分配堆外內存,

然后通過一個存儲在Java堆中的DirectByteBuffer對象作為這塊內存的引用進行操作

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末但校,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌州刽,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件辨绊,死亡現(xiàn)場離奇詭異匹表,居然都是意外死亡,警方通過查閱死者的電腦和手機默蚌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進店門苇羡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事攘轩÷肓” “怎么了度帮?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵稿存,是天一觀的道長。 經(jīng)常有香客問我挠铲,道長,這世上最難降的妖魔是什么拂苹? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮浴韭,結果婚禮上脯宿,老公的妹妹穿的比我還像新娘。我一直安慰自己连霉,他們只是感情好,可當我...
    茶點故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布跺撼。 她就那樣靜靜地躺著,像睡著了一般柿祈。 火紅的嫁衣襯著肌膚如雪哩至。 梳的紋絲不亂的頭發(fā)上躏嚎,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天卢佣,我揣著相機與錄音,去河邊找鬼珠漂。 笑死,一個胖子當著我的面吹牛媳危,可吹牛的內容都是我干的。 我是一名探鬼主播待笑,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼寞缝!你這毒婦竟也來了仰泻?” 一聲冷哼從身側響起荆陆,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤被啼,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后浓体,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體辈讶,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年生闲,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片碍讯。...
    茶點故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡飞醉,死狀恐怖屯阀,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情难衰,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布盖袭,位于F島的核電站彼宠,受9級特大地震影響弟塞,放射性物質發(fā)生泄漏。R本人自食惡果不足惜决记,卻給世界環(huán)境...
    茶點故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望索昂。 院中可真熱鬧,春花似錦椒惨、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至屯碴,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間导而,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工韵丑, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留虚缎,地道東北人撵彻。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓实牡,卻偏偏與公主長得像,于是被迫代替她去往敵國和親创坞。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,527評論 2 349

推薦閱讀更多精彩內容

  • 一偎谁、內存模型 Java內存模型,往往是指Java程序在運行時內存的模型巡雨,而Java代碼是運行在Java虛擬機之上的...
    keep_trying2017閱讀 561評論 0 0
  • JVM內存模型Java虛擬機(Java Virtual Machine=JVM)的內存空間分為五個部分铐望,分別是: ...
    光劍書架上的書閱讀 2,493評論 2 26
  • 運行時數(shù)據(jù)區(qū): 1.程序計數(shù)器( Program Counter Register) 當前線程所執(zhí)行的字節(jié)碼的行號...
    阿拉要洗澡閱讀 147評論 0 0
  • 內存溢出和內存泄漏的區(qū)別 內存溢出:out of memory,是指程序在申請內存時炕舵,沒有足夠的內存空間供其使用,...
    Aimerwhy閱讀 732評論 0 1
  • eclipse配色設置 主題更改 字體主題設置 字體主題網(wǎng)站 隨便選擇一個下載 下載首選項 在工程中插入 然后添加...
    葡小萄家的貓閱讀 1,225評論 0 1