每日一問:你了解 Java 虛擬機結(jié)構(gòu)么?

對于從事 C/C++ 程序員開發(fā)的小伙伴來說轿偎,在內(nèi)存管理領(lǐng)域非常頭疼,因為他們總是需要對每一個 new 操作去寫配對的 delete/free 代碼被廓。而對于我們 Android 乃至 Java 程序員坏晦,卻總是會因為虛擬機的自動內(nèi)存管理機制而忽視內(nèi)存管理的重要性。

經(jīng)過前面簡短的幾篇純 Android 問題,我想再給大家摻雜一點可能平時你并沒有太多關(guān)注的東西昆婿。其實寫這個的時候我相當(dāng)糾結(jié)球碉,因為對于大多數(shù) Android 開發(fā)來說,他們會更加注重實質(zhì)性的技能提升仓蛆,而不是我今天將要講的 Java 虛擬機結(jié)構(gòu)睁冬。

但經(jīng)過一系列的思想斗爭,我還是打算把這個講到底多律,為了不浪費大家太多的時間痴突,我依然遵從「每日一問」系列的初衷,我們盡可能地精簡文字狼荞,讓每一個小知識點閱讀時間都控制在 5 分鐘以下。

Java 虛擬機結(jié)構(gòu)作為一個面試高頻考點帮碰,你完全可以當(dāng)做你在復(fù)習(xí)面試知識相味,這樣興許你的學(xué)習(xí)的心態(tài)會好一些。

我還是不得不去網(wǎng)上摘下了這個圖殉挽,我想唯有用這張圖結(jié)合講解起來才更加的通俗易懂丰涉。

Java 虛擬機內(nèi)存區(qū)域確實就由這幾部分構(gòu)成:方法區(qū)、虛擬機棧斯碌、本地方法棧一死、堆、程序計數(shù)器傻唾。

程序計數(shù)器

程序計數(shù)器是一個較小的內(nèi)存空間投慈,線程私有,它是唯一一個在 Java 虛擬機規(guī)范中沒有規(guī)定任何 OOM 情況的區(qū)域冠骄。

虛擬機棧

虛擬機棧和程序計數(shù)器一樣伪煤,同樣為線程所私有,并且生命周期和線程相同凛辣。抱既。每個棧中的數(shù)據(jù)都是私有的,其他棧不允許訪問扁誓,每個方法被執(zhí)行的時候都會同時創(chuàng)建一個棧幀防泵,每一個方法被調(diào)用直至執(zhí)行完成的過程,就對應(yīng)著一個棧幀在虛擬機棧從入棧到出棧的過程蝗敢。虛擬機棧主要存放各種編譯期可知的基本數(shù)據(jù)類型和對象的引用捷泞。

本地方法棧

本地方法棧與虛擬機棧發(fā)揮的作用非常相似,其主要區(qū)別是虛擬機棧為虛擬機執(zhí)行 Java 方法(也就是字節(jié)碼)服務(wù)前普,而本地房發(fā)展則是為虛擬機用到的 Native 方法服務(wù)肚邢。

Java 堆

Java 堆是垃圾收集器管理的主要區(qū)域,主要用于存放對象的實例,自然而然就成了 Java 虛擬機中管理內(nèi)存最大的一塊骡湖,并且它可以處于物理上不連續(xù)的內(nèi)存空間中贱纠,Java 堆在虛擬機啟動的時候就進行創(chuàng)建,并被所有線程所共享响蕴。

方法區(qū)

方法區(qū)和 Java 堆一樣谆焊,是各個線程共享的內(nèi)存區(qū)域,主要存儲已被虛擬機加載的類信息浦夷、常量辖试、靜態(tài)變量、即時編譯器編譯后的代碼等數(shù)據(jù)劈狐。這個區(qū)域的內(nèi)存回收目標(biāo)主要是針對常量池的回收和對類型的寫在罐孝,較少發(fā)生垃圾收集行為。

上面對 Java 虛擬機結(jié)構(gòu)進行了非常精簡的講解肥缔,大家可還對此清晰了一些莲兢?如果還是沒有太透徹其實沒有關(guān)系,多回顧幾遍续膳,最好能自己畫一個圖改艇,在一邊進行理解。明天我們再來講一講我們另外一個面試非常高頻的考點:垃圾回收算法坟岔,一起來探究 Java 虛擬機到底是怎么來回收一個無用的對象的谒兄。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市社付,隨后出現(xiàn)的幾起案子承疲,更是在濱河造成了極大的恐慌,老刑警劉巖瘦穆,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件纪隙,死亡現(xiàn)場離奇詭異,居然都是意外死亡扛或,警方通過查閱死者的電腦和手機绵咱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來熙兔,“玉大人悲伶,你說我怎么就攤上這事∽∩妫” “怎么了麸锉?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長舆声。 經(jīng)常有香客問我花沉,道長柳爽,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任碱屁,我火速辦了婚禮磷脯,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘娩脾。我一直安慰自己赵誓,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布柿赊。 她就那樣靜靜地躺著俩功,像睡著了一般。 火紅的嫁衣襯著肌膚如雪碰声。 梳的紋絲不亂的頭發(fā)上诡蜓,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天,我揣著相機與錄音奥邮,去河邊找鬼万牺。 笑死,一個胖子當(dāng)著我的面吹牛洽腺,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播覆旱,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼蘸朋,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了扣唱?” 一聲冷哼從身側(cè)響起藕坯,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎噪沙,沒想到半個月后炼彪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡正歼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年辐马,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片局义。...
    茶點故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡喜爷,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出萄唇,到底是詐尸還是另有隱情檩帐,我是刑警寧澤,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布另萤,位于F島的核電站湃密,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜泛源,卻給世界環(huán)境...
    茶點故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一拔妥、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧俩由,春花似錦毒嫡、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至碘梢,卻和暖如春咬摇,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背煞躬。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工肛鹏, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人恩沛。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓在扰,卻偏偏與公主長得像,于是被迫代替她去往敵國和親雷客。 傳聞我的和親對象是個殘疾皇子芒珠,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,792評論 2 345

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

  • 第二部分 自動內(nèi)存管理機制 第二章 java內(nèi)存異常與內(nèi)存溢出異常 運行數(shù)據(jù)區(qū)域 程序計數(shù)器:當(dāng)前線程所執(zhí)行的字節(jié)...
    小明oh閱讀 1,130評論 0 2
  • 《深入理解Java虛擬機》筆記_第一遍 先取看完這本書(JVM)后必須掌握的部分。 第一部分 走近 Java 從傳...
    xiaogmail閱讀 5,062評論 1 34
  • 一搅裙、運行時數(shù)據(jù)區(qū)域 Java虛擬機管理的內(nèi)存包括幾個運行時數(shù)據(jù)內(nèi)存:方法區(qū)皱卓、虛擬機棧、本地方法棧部逮、堆娜汁、程序計數(shù)器,...
    luhanlin閱讀 540評論 0 0
  • 一兄朋、運行時數(shù)據(jù)區(qū)域 Java虛擬機管理的內(nèi)存包括幾個運行時數(shù)據(jù)內(nèi)存:方法區(qū)掐禁、虛擬機棧、本地方法棧蜈漓、堆穆桂、程序計數(shù)器,...
    加油小杜閱讀 1,511評論 1 15
  • 1.1 概述 Java優(yōu)點: 1融虽、結(jié)構(gòu)嚴(yán)謹(jǐn)享完,面向?qū)ο?2、擺脫硬件平臺束縛有额,實現(xiàn)了“一次編寫般又,到處運行”的理想; ...
    viciyforever閱讀 1,146評論 1 9