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

Java 虛擬機(jī)運(yùn)行時(shí)數(shù)據(jù)區(qū)域包括程序計(jì)數(shù)器吭净、虛擬機(jī)棧、本地方法棧肴甸、堆寂殉、方法區(qū)等

程序計(jì)數(shù)器

當(dāng)前線程執(zhí)行的虛擬機(jī)字節(jié)碼的行號(hào)指示器,字節(jié)碼解釋器通過(guò)改變計(jì)數(shù)器的值來(lái)選取下一條要執(zhí)行的字節(jié)碼指令地址

虛擬機(jī)棧

java方法執(zhí)行的內(nèi)存模型原在,虛擬機(jī)棧就是有棧幀的容器友扰,每一個(gè)方法調(diào)用就是棧幀在vm stack 進(jìn)出的過(guò)程

棧幀

每個(gè)方法執(zhí)行時(shí)都會(huì)創(chuàng)建一個(gè)棧幀彤叉,其內(nèi)部包含:

  • 局部變量表:存放方法參數(shù)和方法內(nèi)定義的局部變量,以索引方式引用村怪,存儲(chǔ)單元稱為slot
  • 操作數(shù)棧:后人先出秽浇,字節(jié)碼指令往操作數(shù)棧值寫入提取內(nèi)容
  • 動(dòng)態(tài)鏈接:對(duì)應(yīng)的是即時(shí)編譯后Class文件存儲(chǔ)的方法體引用地址
  • 方法返回地址:正常退出通俗講就是返回方法調(diào)用處,當(dāng)前棧幀出棧实愚,班返回值壓入調(diào)用者的操作數(shù)棧兼呵,調(diào)用程序計(jì)數(shù)器執(zhí)行下一指令;異常退出:本方法異常表沒(méi)有搜索到匹配的異常處理器(沒(méi)有try catch異常)

方法區(qū)(非堆腊敲、永久代 Permanent Generation)

線程共享的內(nèi)存區(qū)域击喂,存儲(chǔ)虛擬機(jī)加載的類信息、常量碰辅、靜態(tài)變量懂昂、是各個(gè)線程共享的內(nèi)存區(qū)域。默認(rèn)最小值為16MB没宾,最大值為64MB凌彬,可以通過(guò)-XX:PermSize-XX:MaxPermSize 參數(shù)調(diào)整

運(yùn)行時(shí)常量池

方法區(qū)的一部分,Class文件中除了有類的版本循衰、字段铲敛、方法、接口等描述信息外会钝,還有一項(xiàng)信息是常量池伐蒋,用于存放編譯器生成的各種符號(hào)引用,這部分內(nèi)容將在類加載后放到方法區(qū)的運(yùn)行時(shí)常量池中

堆 heap

也稱Java 堆迁酸、GC堆是java虛擬機(jī)所管理的內(nèi)存中最大的一塊內(nèi)存區(qū)域先鱼,是線程共享的內(nèi)存區(qū)域,在JVM啟動(dòng)時(shí)創(chuàng)建奸鬓,存放對(duì)象實(shí)例及數(shù)組焙畔。通過(guò)-Xms512m-Xmx512m 調(diào)整jvm運(yùn)行內(nèi)存大小,默認(rèn)設(shè)置為一致

命令 閾值 描述
-Xms512m 物理內(nèi)存的1/64但小于1G串远,一理論為服務(wù)器內(nèi)存的1/2-3/4之間 JVM啟動(dòng)時(shí)申請(qǐng)的最小內(nèi)存
-Xmx512m 同Xms一致 JVM啟動(dòng)時(shí)申請(qǐng)的最大內(nèi)存
-XX:MinHeapFreeRatio=40 小于閾值增大到Xmx 默認(rèn)40%
-XX:MaxHeapFreeRation=70 大于閾值減小到Xms 默認(rèn)70%

下圖是根據(jù)理解所畫


5455988-9eb5a2bb717fd357.png

有疑問(wèn)不妥之處請(qǐng)留言討論

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末宏多,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子抑淫,更是在濱河造成了極大的恐慌绷落,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,635評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件始苇,死亡現(xiàn)場(chǎng)離奇詭異砌烁,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門函喉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)避归,“玉大人,你說(shuō)我怎么就攤上這事管呵∈岜校” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 168,083評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵捐下,是天一觀的道長(zhǎng)账锹。 經(jīng)常有香客問(wèn)我,道長(zhǎng)坷襟,這世上最難降的妖魔是什么奸柬? 我笑而不...
    開(kāi)封第一講書人閱讀 59,640評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮婴程,結(jié)果婚禮上廓奕,老公的妹妹穿的比我還像新娘。我一直安慰自己档叔,他們只是感情好桌粉,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,640評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著衙四,像睡著了一般铃肯。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上传蹈,一...
    開(kāi)封第一講書人閱讀 52,262評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音卡睦,去河邊找鬼漱抓。 笑死表锻,一個(gè)胖子當(dāng)著我的面吹牛乞娄,可吹牛的內(nèi)容都是我干的瞬逊。 我是一名探鬼主播,決...
    沈念sama閱讀 40,833評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼仪或,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了范删?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 39,736評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎旨巷,沒(méi)想到半個(gè)月后巨缘,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,280評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡采呐,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,369評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了斧吐。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,503評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡仰冠,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出沪停,到底是詐尸還是另有隱情,我是刑警寧澤木张,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站舷礼,受9級(jí)特大地震影響郊闯,放射性物質(zhì)發(fā)生泄漏妻献。R本人自食惡果不足惜团赁,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,870評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望欢摄。 院中可真熱鬧,春花似錦怀挠、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,340評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)佑菩。三九已至,卻和暖如春倘待,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背凸舵。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,460評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留啊奄,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,909評(píng)論 3 376
  • 正文 我出身青樓琼富,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親鞠眉。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,512評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • JVM所管理的內(nèi)存分為以下幾個(gè)運(yùn)行時(shí)數(shù)據(jù)區(qū):程序計(jì)數(shù)器、Java虛擬機(jī)棧羞芍、本地方法棧、Java堆荷科、方法區(qū)。 程序計(jì)...
    峰峰小閱讀 386評(píng)論 0 5
  • 主要為《深入理解java虛擬機(jī)》讀書筆記內(nèi)容畏浆,僅作記錄及分享。 Java虛擬機(jī)在執(zhí)行Java程序的過(guò)程中會(huì)把他管理...
    檸檬師傅閱讀 436評(píng)論 0 1
  • Java虛擬機(jī)結(jié)構(gòu)主要有三大模塊: 虛擬機(jī) 堆煮剧,方法區(qū)将鸵,棧 先放一張大圖,后面慢慢解釋 堆 堆內(nèi)存是虛擬機(jī)中最大...
    codemonkey_wjc閱讀 215評(píng)論 0 0
  • Java和C plus plus的主要區(qū)別:內(nèi)存動(dòng)態(tài)分配和垃圾回收(C plus plus程序員和Java程序員之...
    Ajinsir閱讀 219評(píng)論 0 0
  • 第二部分 自動(dòng)內(nèi)存管理機(jī)制 第二章 java內(nèi)存異常與內(nèi)存溢出異常 運(yùn)行數(shù)據(jù)區(qū)域 程序計(jì)數(shù)器:當(dāng)前線程所執(zhí)行的字節(jié)...
    小明oh閱讀 1,174評(píng)論 0 2