JVM面試詳解

1啥箭、JVM構(gòu)成

image.png

Java棧是線程私有的宜雀,每個(gè)線程創(chuàng)建的同時(shí)都會(huì)創(chuàng)建JVM棧曙砂,JVM棧中存放的為當(dāng)前線程中局部基本類(lèi)型的變量(java中定義的八種基本類(lèi)型:boolean磕谅、char眠蚂、byte煞聪、short、int逝慧、long昔脯、float、double)笛臣、部分的返回結(jié)果以及Stack Frame云稚,非基本類(lèi)型的對(duì)象在JVM棧上僅存放一個(gè)指向堆上的地址。

PC寄存器
PC寄存器是用于存儲(chǔ)每個(gè)線程下一步將執(zhí)行的JVM指令沈堡,如該方法為native的静陈,則PC寄存器中不存儲(chǔ)任何信息。

本地方法堆棧(Native Method Stacks)
JVM采用本地方法堆棧來(lái)支持native方法的執(zhí)行踱蛀,此區(qū)域用于存儲(chǔ)每個(gè)native方法調(diào)用的狀態(tài)窿给。

方法區(qū)域(Method Area)
(1)在Sun JDK中這塊區(qū)域?qū)?yīng)的為PermanetGeneration,又稱(chēng)為持久代率拒。
(2)方法區(qū)域存放了所加載的類(lèi)的信息(名稱(chēng)崩泡、修飾符等)、類(lèi)中的靜態(tài)變量猬膨、類(lèi)中定義為final類(lèi)型的常量角撞、類(lèi)中的Field信息呛伴、類(lèi)中的方法信息,當(dāng)開(kāi)發(fā)人員在程序中通過(guò)Class對(duì)象中的getName谒所、isInterface等方法來(lái)獲取信息時(shí)热康,這些數(shù)據(jù)都來(lái)源于方法區(qū)域,同時(shí)方法區(qū)域也是全局共享的劣领,在一定的條件下它也會(huì)被GC姐军,當(dāng)方法區(qū)域需要使用的內(nèi)存超過(guò)其允許的大小時(shí),會(huì)拋出OutOfMemory的錯(cuò)誤信息尖淘。

堆(Heap)
它是JVM用來(lái)存儲(chǔ)對(duì)象實(shí)例以及數(shù)組值的區(qū)域奕锌,可以認(rèn)為Java中所有通過(guò)new創(chuàng)建的對(duì)象的內(nèi)存都在此分配,Heap中的對(duì)象的內(nèi)存需要等待GC進(jìn)行回收

不可能存在垃圾回收的地方

Java棧村生、本地方法棧惊暴、程序計(jì)數(shù)器

原因:如果存在垃圾就會(huì)一直阻塞,棧用完就會(huì)彈出去

JVM調(diào)優(yōu)指的是調(diào)優(yōu)那一部分

答案:堆趁桃、方法區(qū)(方法區(qū)也是一個(gè)特殊的堆)

2辽话、雙親委派機(jī)制

(1)、APP -> EXC -> BOOT

1卫病、類(lèi)加載器收到類(lèi)加載的請(qǐng)求
2油啤、將這個(gè)請(qǐng)求向上委托給父類(lèi)加載器去完成,一直向上委托忽肛,直到啟動(dòng)類(lèi)加載器
3村砂、啟動(dòng)加載器檢查是否能夠加載當(dāng)前這個(gè)類(lèi)烂斋,能加載就結(jié)束屹逛,使用當(dāng)前的加載器,否者拋出異常汛骂,通知子加載器進(jìn)行加載
4罕模、重復(fù)步驟3

3、堆內(nèi)存空間

image.png

常量池在方法區(qū)中
持久代/元空間也是存在堆中帘瞭,別名"非堆"

OOM堆內(nèi)存滿了

-Xms1024 -Xmx1024 -XX:+PrintGCDatails啟動(dòng)時(shí)顯示JVM信息

分代收集算法

年輕代

  • 存活率低
  • 復(fù)制算法
    老年代
  • 存活率高
  • 標(biāo)記清除 + 標(biāo)記壓縮 混合實(shí)現(xiàn)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末淑掌,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子蝶念,更是在濱河造成了極大的恐慌抛腕,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,185評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件媒殉,死亡現(xiàn)場(chǎng)離奇詭異担敌,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)廷蓉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門(mén)全封,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事刹悴⌒欣悖” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,524評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵土匀,是天一觀的道長(zhǎng)子房。 經(jīng)常有香客問(wèn)我,道長(zhǎng)就轧,這世上最難降的妖魔是什么池颈? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,339評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮钓丰,結(jié)果婚禮上躯砰,老公的妹妹穿的比我還像新娘。我一直安慰自己携丁,他們只是感情好琢歇,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評(píng)論 6 391
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著梦鉴,像睡著了一般李茫。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上肥橙,一...
    開(kāi)封第一講書(shū)人閱讀 51,287評(píng)論 1 301
  • 那天魄宏,我揣著相機(jī)與錄音,去河邊找鬼存筏。 笑死宠互,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的椭坚。 我是一名探鬼主播予跌,決...
    沈念sama閱讀 40,130評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼善茎!你這毒婦竟也來(lái)了券册?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,985評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤垂涯,失蹤者是張志新(化名)和其女友劉穎烁焙,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體耕赘,經(jīng)...
    沈念sama閱讀 45,420評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡骄蝇,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了鞠苟。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片乞榨。...
    茶點(diǎn)故事閱讀 39,779評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡秽之,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出吃既,到底是詐尸還是另有隱情考榨,我是刑警寧澤,帶...
    沈念sama閱讀 35,477評(píng)論 5 345
  • 正文 年R本政府宣布鹦倚,位于F島的核電站河质,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏震叙。R本人自食惡果不足惜掀鹅,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望媒楼。 院中可真熱鬧乐尊,春花似錦、人聲如沸划址。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,716評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)夺颤。三九已至痢缎,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間世澜,已是汗流浹背独旷。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,857評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留寥裂,地道東北人嵌洼。 一個(gè)月前我還...
    沈念sama閱讀 47,876評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像抚恒,于是被迫代替她去往敵國(guó)和親咱台。 傳聞我的和親對(duì)象是個(gè)殘疾皇子络拌,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評(píng)論 2 354