深入理解Java虛擬機(jī)讀書筆記

1. 內(nèi)存信息

java虛擬機(jī)運(yùn)行時(shí)的數(shù)據(jù)區(qū).png

2. 對(duì)象的訪問定位

Java方法執(zhí)行時(shí)都是對(duì)各種對(duì)象進(jìn)行操作崇裁,而這些對(duì)象都是存放在Java堆中的撇他,Java方法中變量相關(guān)的信息是存放在虛擬機(jī)棧中的,這些變量只是一個(gè)指向?qū)ο蟮囊茫苑椒▓?zhí)行時(shí)就會(huì)涉及到對(duì)象的定位。對(duì)象定位主要有兩種方式:

  • 使用句柄訪問
    使用句柄最大的好處就是對(duì)象引用中存儲(chǔ)的是穩(wěn)定的句柄地址仇奶,在對(duì)象被移動(dòng)(垃圾收集中很普遍)是只會(huì)改變句柄中的實(shí)例數(shù)據(jù)指針,而對(duì)象引用本身不需要修改比驻。


    句柄方式定位對(duì)象
  • 使用直接指針訪問
    使用直接訪問的最大好處是速度快该溯,它節(jié)省了一次指針定位的時(shí)間開銷。


    直接指針方式定位對(duì)象.png

3. String.intern()方法

String.intern()方法是一個(gè)Native方法(本地方法)嫁艇,它的作用是:如果字符串常量池中已經(jīng)包含一個(gè)等于此String對(duì)象的字符串朗伶,則返回代表池中這個(gè)字符串的String對(duì)象,否則步咪,將此String對(duì)象包含的字符串添加到常量池中,并返回此String對(duì)象的引用益楼。

4. 垃圾收集與內(nèi)存分配策略

JVM垃圾收集.png

分代收集:


分代收集圖示

首先猾漫,新對(duì)象的內(nèi)存分配都是先在Eden區(qū)域中進(jìn)行的点晴,當(dāng)Eden區(qū)域的空間不足于分配新對(duì)象時(shí),就會(huì)觸發(fā)年輕代上的垃圾回收悯周,一般使用復(fù)制算法將存活對(duì)象復(fù)制到一個(gè)Survivor區(qū)中粒督,同時(shí)對(duì)象年齡加1.當(dāng)?shù)诙蝝inor gc被觸發(fā)時(shí),JVM會(huì)通過Mark算法找出所有在Eden內(nèi)存區(qū)域和Survivor1內(nèi)存區(qū)域存活的對(duì)象禽翼,并將他們拷貝到新的Survivor2內(nèi)存區(qū)域屠橄,同時(shí)對(duì)象的年齡加1. 最后,清除所有在Eden內(nèi)存區(qū)域和Survivor1內(nèi)存區(qū)域的非可達(dá)對(duì)象闰挡。當(dāng)對(duì)象的年齡足夠大(這個(gè)年齡可以通過JVM參數(shù)進(jìn)行指定)锐墙,當(dāng)minor gc再次發(fā)生時(shí),它會(huì)從Survivor內(nèi)存區(qū)域中升級(jí)到年老代中长酗。當(dāng)minor gc發(fā)生時(shí)溪北,又有對(duì)象從Survivor區(qū)域升級(jí)到老年代區(qū)域中,但是老年代區(qū)域已經(jīng)沒有空間容納新的對(duì)象了夺脾,那么這個(gè)時(shí)候就會(huì)觸發(fā)年老代上的垃圾回收之拨,一般采用標(biāo)記-整理算法。
其他要點(diǎn):大對(duì)象(需要大量連續(xù)內(nèi)存空間的Java對(duì)象)直接進(jìn)入老年代咧叭。

5.java虛擬機(jī)類加載機(jī)制

虛擬機(jī)類加載機(jī)制.png

雙親委派模型:

從Java虛擬機(jī)的角度來講只存在兩種不同的類加載器蚀乔,一種是啟動(dòng)類加載器,由C++實(shí)現(xiàn)菲茬,是虛擬機(jī)自身的一部分乙墙,另一種就是其他類加載器,這些類加載器都是有Java語言實(shí)現(xiàn)獨(dú)立于虛擬機(jī)外部生均。并且全都繼承自抽象類java.lang.ClassLoader听想。
雙親委派模型:雙親委派模型要求除了頂層的啟動(dòng)類加載器外,其余的類加載器都應(yīng)當(dāng)有自己的父類加載器马胧,這里類加載器之間的父子關(guān)系一般不會(huì)以繼承的關(guān)系來實(shí)現(xiàn)汉买,而是都是用組合的關(guān)系來實(shí)現(xiàn)。
雙親委派模型的工作過程是:如果一個(gè)類加載器收到了類加載的請(qǐng)求佩脊,他首先不會(huì)自己去嘗試加載這個(gè)類蛙粘,而是把這個(gè)請(qǐng)求為派給父類的加載器去完成,每個(gè)層次的加載器都是如此威彰,因此所有的加載請(qǐng)求最終都應(yīng)該川大到頂層的啟動(dòng)類加載器中出牧,只有當(dāng)父類加載器反饋?zhàn)约簾o法完成這個(gè)加載請(qǐng)求是,子加載器才會(huì)嘗試自己去加載歇盼。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末舔痕,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌伯复,老刑警劉巖慨代,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異啸如,居然都是意外死亡侍匙,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門叮雳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來想暗,“玉大人,你說我怎么就攤上這事帘不∷的” “怎么了?”我有些...
    開封第一講書人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵厌均,是天一觀的道長唬滑。 經(jīng)常有香客問我,道長棺弊,這世上最難降的妖魔是什么晶密? 我笑而不...
    開封第一講書人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮模她,結(jié)果婚禮上稻艰,老公的妹妹穿的比我還像新娘。我一直安慰自己侈净,他們只是感情好尊勿,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著畜侦,像睡著了一般元扔。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上旋膳,一...
    開封第一講書人閱讀 51,125評(píng)論 1 297
  • 那天澎语,我揣著相機(jī)與錄音,去河邊找鬼验懊。 笑死擅羞,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的义图。 我是一名探鬼主播减俏,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼碱工!你這毒婦竟也來了娃承?” 一聲冷哼從身側(cè)響起奏夫,我...
    開封第一講書人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎草慧,沒想到半個(gè)月后桶蛔,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體匙头,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡漫谷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蹂析。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片舔示。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖电抚,靈堂內(nèi)的尸體忽然破棺而出惕稻,到底是詐尸還是另有隱情,我是刑警寧澤蝙叛,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布俺祠,位于F島的核電站,受9級(jí)特大地震影響借帘,放射性物質(zhì)發(fā)生泄漏蜘渣。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一肺然、第九天 我趴在偏房一處隱蔽的房頂上張望蔫缸。 院中可真熱鬧,春花似錦际起、人聲如沸拾碌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽校翔。三九已至,卻和暖如春灾前,著一層夾襖步出監(jiān)牢的瞬間防症,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來泰國打工豫柬, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留告希,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓烧给,卻偏偏與公主長得像燕偶,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子础嫡,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353

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