Java運(yùn)行時數(shù)據(jù)區(qū)域

根據(jù)《Java虛擬機(jī)規(guī)范(SE7版)》的規(guī)定,Java虛擬機(jī)所管理的內(nèi)存將會包括一下幾個運(yùn)行時數(shù)據(jù)區(qū)域寺鸥,如下圖所示


Java虛擬機(jī)運(yùn)行時數(shù)據(jù)區(qū).jpg

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

程序計(jì)數(shù)器是一塊較小的內(nèi)存空間,可以看做當(dāng)前線程所執(zhí)行的字節(jié)碼的行號指示器。
字節(jié)碼解釋器工作時就是通過改變計(jì)數(shù)器的值來選取下一條需要執(zhí)行的 字節(jié)碼指令秘血。
Java虛擬機(jī)的多線程是通過線程 輪流切換并分配處理器執(zhí)行時間的方式來實(shí)現(xiàn)的,在任何一個確定的時刻评甜,一個處理器(或者說一個內(nèi)核)都只會執(zhí)行一條線的程序計(jì)數(shù)器灰粮,各條線程之間互不影響,獨(dú)立存儲忍坷,我們稱這類內(nèi)存區(qū)域?yàn)椤熬€程私有”的內(nèi)存粘舟。

2.Java虛擬機(jī)棧

Java虛擬機(jī)棧(Java Virtual Machine Stacks)也是線程私有的,生命周期與線程相同佩研。虛擬機(jī)棧描述的是Java方法執(zhí)行的內(nèi)存模型:每個方法在執(zhí)行的同時都會創(chuàng)建一個棧幀(Stack Frame)用于存儲局部變量表柑肴、操作數(shù)棧、動態(tài)鏈接韧骗、方法出口等信息嘉抒。每一個方法從調(diào)用直至執(zhí)行完成的過程 ,就對應(yīng)著一個棧幀在虛擬機(jī)棧中從入棧到出棧的過程袍暴。
局部變量表存放了編譯器可知的各種基本數(shù)據(jù)類型些侍、對象引用和returnAddress類型(指向了一條字節(jié)碼指令的地址)

3.本地方法棧

本地方法棧(Native Method Stack)與虛擬機(jī)棧的作用是非常類似的,他們之間的區(qū)別不過是虛擬機(jī)棧為虛擬機(jī)執(zhí)行Java方法(也就是字節(jié)碼)服務(wù)政模,而本地方法棧則為虛擬機(jī)使用到的Native方法服務(wù)岗宣。

4.Java堆

對于大多數(shù)應(yīng)用來說,Java堆(Java Heap)是Java虛擬機(jī)所管理的內(nèi)存中最大的一塊淋样。Java堆是被所有線程共享的一塊內(nèi)存區(qū)域耗式,在虛擬機(jī)啟動時創(chuàng)建。此內(nèi)存區(qū)域的唯一目的就是存放對象實(shí)例,幾乎所有的對象實(shí)例都在這里分配內(nèi)存刊咳。
根據(jù)Java虛擬機(jī)規(guī)范的規(guī)定彪见,Java堆可以處于物理上不連續(xù)的內(nèi)存空間中,只要邏輯上是連續(xù)的即可娱挨。

5.方法區(qū)

方法區(qū)(Method Area)與Java堆一樣余指,是各個線程共享的內(nèi)存區(qū)域,它用于存儲已被虛擬機(jī)加載的類信息跷坝、常量酵镜、靜態(tài)變量、即時編譯器編譯后的代碼等數(shù)據(jù)柴钻。
Java虛擬機(jī)規(guī)范堆方法區(qū)限制非常寬松淮韭,除了和Java堆一樣不需要連續(xù)的內(nèi)存和可以選擇固定大小或者可擴(kuò)展外,還可以選擇不實(shí)現(xiàn)垃圾回收贴届。

6.運(yùn)行時常量池

運(yùn)行時常量池(Runtime Constant Pool)是方法區(qū)的一部分靠粪。Class文件中的常量池(Constant Pool Table)在類加載后進(jìn)入方法區(qū)的運(yùn)行時常量池中存放。

參考文獻(xiàn):
《深入理解Java虛擬機(jī)-JVM高級特性與最佳實(shí)踐》

本文圖片均來自網(wǎng)絡(luò)粱腻,若有侵權(quán)庇配,告知立刪斩跌。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末绍些,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子耀鸦,更是在濱河造成了極大的恐慌柬批,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件袖订,死亡現(xiàn)場離奇詭異氮帐,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)洛姑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進(jìn)店門上沐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人楞艾,你說我怎么就攤上這事参咙。” “怎么了硫眯?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵蕴侧,是天一觀的道長。 經(jīng)常有香客問我两入,道長净宵,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮择葡,結(jié)果婚禮上紧武,老公的妹妹穿的比我還像新娘。我一直安慰自己敏储,他們只是感情好脏里,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著虹曙,像睡著了一般迫横。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上酝碳,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天矾踱,我揣著相機(jī)與錄音,去河邊找鬼疏哗。 笑死呛讲,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的返奉。 我是一名探鬼主播贝搁,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼芽偏!你這毒婦竟也來了雷逆?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤污尉,失蹤者是張志新(化名)和其女友劉穎膀哲,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體被碗,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡某宪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了锐朴。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片兴喂。...
    茶點(diǎn)故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖焚志,靈堂內(nèi)的尸體忽然破棺而出衣迷,到底是詐尸還是另有隱情,我是刑警寧澤娩嚼,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布蘑险,位于F島的核電站,受9級特大地震影響岳悟,放射性物質(zhì)發(fā)生泄漏佃迄。R本人自食惡果不足惜泼差,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望呵俏。 院中可真熱鬧堆缘,春花似錦、人聲如沸普碎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽麻车。三九已至缀皱,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間动猬,已是汗流浹背啤斗。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留赁咙,地道東北人钮莲。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像彼水,于是被迫代替她去往敵國和親崔拥。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,440評論 2 348