JVM.003.垃圾回收器

閱讀原文:https://blog.csdn.net/singc/article/details/108646348

1 JVM內(nèi)存模型

談到垃圾回收娜搂,我們先回顧下JVM的內(nèi)存組成:

線程隔離性 內(nèi)存類型 用途
線程隔離 1.本地方法棧 存儲JVM的native方法
2.虛擬機棧 存儲類方法里的局部變量婿屹、返回結(jié)果鏈接、程序執(zhí)行的字節(jié)位置等鼎姐,其生命周期與線程一致
3.程序計數(shù)器 根據(jù)虛擬機棧中存儲的字節(jié)位置,在線程切換后找到上次執(zhí)行位置蜓耻。
線程共享 1.堆 存儲對象實例和數(shù)組
2.方法區(qū)(永久代) 存儲類加載文件灵嫌、常量、靜態(tài)變量等嗡官。在Java8中永久代被移除,由“元數(shù)據(jù)區(qū)”取代
直接內(nèi)存 NIO等 在JDK1.4時引入了NIO毯焕,可以不通JVM而由Native方法直接在系統(tǒng)內(nèi)存進行IO操作衍腥,顯著提升了效率
在這里插入圖片描述

垃圾回收主要是針對堆內(nèi)存進行!

2 垃圾回收與算法

2.1 回收對象

垃圾回收對象通常是指已死亡的變量纳猫。常用的確認算法有2種:

  • 引用計數(shù)法
  • 可達性分析法

2.2 回收算法

  • 標記算法
  • 復制算法
  • 標記-整理算法

垃圾回收器按照其算法特性不同婆咸,其在各分代中的使用也不同。

  • 新生代(young generation)有三種GC:
    -Serial(串行) : 只會使用1個cpu或線程進行垃圾回收芜辕,而且回收過程中尚骄,其他所有線程都必須暫停,直至回收結(jié)束侵续,被戲稱為“stop the world”倔丈。
    應用場景:用戶端,由于是單線程運作状蜗,沒有線程交互的大開銷需五,故而效率很高,回收時間可以控制在毫秒級別轧坎,對于用戶而言幾乎沒有停頓感宏邮。
    -ParNew
    Paralle Scavenge(scavenge:打掃)

  • 老年代(teunred generation)也有三種GC:
    CMS(Concurrent Mark Sweep)
    Serial Old(MSC)
    Paralle Old

  • 另外還有一個GC在新生代和老年代都會用到—— G1。

from 《深入理解Java虛擬機》

如圖所示共有7種GC缸血,如果有連線則表示二者可以搭配使用蜜氨。

未完待續(xù)...

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市属百,隨后出現(xiàn)的幾起案子记劝,更是在濱河造成了極大的恐慌,老刑警劉巖族扰,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡渔呵,警方通過查閱死者的電腦和手機怒竿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來扩氢,“玉大人耕驰,你說我怎么就攤上這事÷疾颍” “怎么了朦肘?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長双饥。 經(jīng)常有香客問我媒抠,道長,這世上最難降的妖魔是什么咏花? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任趴生,我火速辦了婚禮,結(jié)果婚禮上昏翰,老公的妹妹穿的比我還像新娘苍匆。我一直安慰自己,他們只是感情好棚菊,可當我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布浸踩。 她就那樣靜靜地躺著,像睡著了一般统求。 火紅的嫁衣襯著肌膚如雪检碗。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天球订,我揣著相機與錄音后裸,去河邊找鬼。 笑死冒滩,一個胖子當著我的面吹牛微驶,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播开睡,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼因苹,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了篇恒?” 一聲冷哼從身側(cè)響起扶檐,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎胁艰,沒想到半個月后款筑,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體智蝠,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年奈梳,在試婚紗的時候發(fā)現(xiàn)自己被綠了杈湾。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡攘须,死狀恐怖漆撞,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情于宙,我是刑警寧澤浮驳,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站捞魁,受9級特大地震影響至会,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜署驻,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一奋献、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧旺上,春花似錦瓶蚂、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至征候,卻和暖如春杭攻,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背疤坝。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工兆解, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人跑揉。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓锅睛,卻偏偏與公主長得像,于是被迫代替她去往敵國和親历谍。 傳聞我的和親對象是個殘疾皇子现拒,可洞房花燭夜當晚...
    茶點故事閱讀 42,786評論 2 345

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

  • 通過介紹當前的垃圾回收器和垃圾回收算法的對比和不同的優(yōu)勢,來幫助讀者選擇適合自己的垃圾回收器望侈。主要涉及對象存活的判...
    黃小豆Jacob閱讀 1,201評論 0 1
  • JVM架構(gòu) 當一個程序啟動之前印蔬,它的class會被類裝載器裝入方法區(qū)(Permanent區(qū)),執(zhí)行引擎讀取方法區(qū)的...
    cocohaifang閱讀 1,646評論 0 7
  • 1.什么是垃圾回收脱衙? 垃圾回收(Garbage Collection)是Java虛擬機(JVM)垃圾回收器提供...
    簡欲明心閱讀 89,392評論 17 311
  • 許多高級編程語言都帶有自動垃圾回收特性侥猬,以將程序員從繁瑣復雜的內(nèi)存分配和釋放工作中解脫例驹。本文將概述常見的垃圾回收算...
    kelgon閱讀 2,042評論 2 52
  • 原文閱讀 前言 這段時間懈怠了,罪過陵究! 最近看到有同事也開始用上了微信公眾號寫博客了眠饮,挺好的~給他們點贊奥帘,這博客我...
    碼農(nóng)戲碼閱讀 5,948評論 2 31