JVM+GC解析(前提知識串聯(lián))

前提準備

  • JVM
  • GC垃圾回收
  • JVM虛擬機監(jiān)控調優(yōu)和故障處理
  • Tomcat和微服務優(yōu)化

1香浩、前提復習

1.1镀迂、JVM內存結構

1.1.1钓辆、

JVM體系結構概覽

圖中灰色部分為線程私有缕溉,幾乎不存在垃圾回收
橙色部分線程共有考传,垃圾回收主要發(fā)生場所

  • 類裝載器子系統(tǒng)是什么?裝載什么证鸥?有哪幾種裝載器
    根啟動類裝載器:BootStrap
    擴展類加載器:Extension
    應用類加載器:AppClassloader
    可以繼承Classloader僚楞,自定義類加載器
  • 雙親委派機制
  • 類加載過程中的沙箱安全機制

1.1.2、java8以后的JVM

java之后的JVM--堆內存

伊甸園區(qū)-幸存者1區(qū)-幸存者2區(qū)-養(yǎng)老區(qū)-(7以前是永久代)元空間

1.2枉层、GC作用域

JVM體系結構概覽

圖中灰色部分為線程私有泉褐,幾乎不存在垃圾回收
橙色部分線程共有,垃圾回收主要發(fā)生場所

1.3鸟蜡、常見垃圾回收算法

  • 引用計數
    有對象引用+1膜赃,沒對象引用-1,到0為止說明需要回收揉忘。
    缺點:天生的缺陷跳座,較難實現循環(huán)引用的問題。
    每次對對象復制時均需要維護引用計數器泣矛,且計數器本身也有一定的消耗疲眷。
    所以JVM通常不采用這種方式。
  • 復制————用于年輕代較多
    在年輕代使用
    復制之后您朽,有交換狂丝,誰空誰是To。
    復制算法

    幸存者0區(qū)哗总,幸存者1區(qū)几颜,在GC之后會互換,一個From讯屈,一個To蛋哭。
    優(yōu)點:沒有產生內存碎片,因為是整體復制涮母。
    缺點:有點浪費空間具壮。尤其是大對象准颓,復制起來有些耗時。

MinorGC


MinorGC
  • 標記清除(MarkSweap)————用于老年代較多
    先標記再清除棺妓。首先標記處要回收的對象攘已,再統(tǒng)一回收這些對象。


    標記清除

優(yōu)點:節(jié)約了空間
缺點:產生了內存碎片

  • 標記(清除)整理————用于老年代較多
  1. 標記(Mark):與標記清除一樣
  2. 壓縮(Compact):再次掃描怜跑,并往一端滑動存活對象样勃。


    標記清除整理--整理

    優(yōu)點:既不浪費空間,也不會產生碎片
    缺點:滑動存活對象會耗時間性芬。

沒有完美算法峡眶,具體哪一代用什么算法,分代收集

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末植锉,一起剝皮案震驚了整個濱河市辫樱,隨后出現的幾起案子,更是在濱河造成了極大的恐慌俊庇,老刑警劉巖狮暑,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異辉饱,居然都是意外死亡搬男,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進店門彭沼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來缔逛,“玉大人,你說我怎么就攤上這事姓惑『峙” “怎么了?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵于毙,是天一觀的道長敦冬。 經常有香客問我,道長望众,這世上最難降的妖魔是什么匪补? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任伞辛,我火速辦了婚禮烂翰,結果婚禮上,老公的妹妹穿的比我還像新娘蚤氏。我一直安慰自己甘耿,他們只是感情好,可當我...
    茶點故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布竿滨。 她就那樣靜靜地躺著佳恬,像睡著了一般捏境。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上毁葱,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天垫言,我揣著相機與錄音,去河邊找鬼倾剿。 笑死筷频,一個胖子當著我的面吹牛,可吹牛的內容都是我干的前痘。 我是一名探鬼主播凛捏,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼芹缔!你這毒婦竟也來了坯癣?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤最欠,失蹤者是張志新(化名)和其女友劉穎示罗,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體窒所,經...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡鹉勒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了吵取。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片禽额。...
    茶點故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖皮官,靈堂內的尸體忽然破棺而出脯倒,到底是詐尸還是另有隱情,我是刑警寧澤捺氢,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布藻丢,位于F島的核電站,受9級特大地震影響摄乒,放射性物質發(fā)生泄漏悠反。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一馍佑、第九天 我趴在偏房一處隱蔽的房頂上張望斋否。 院中可真熱鬧,春花似錦拭荤、人聲如沸茵臭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽旦委。三九已至奇徒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間缨硝,已是汗流浹背摩钙。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留查辩,地道東北人腺律。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像宜肉,于是被迫代替她去往敵國和親匀钧。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,802評論 2 345

推薦閱讀更多精彩內容

  • 引言:JVM常見面試題: 1谬返、請談談你對JVM的理解之斯?java8的虛擬機有什么更新?2遣铝、什么是OOM佑刷?什么是Sta...
    西谷haul閱讀 272評論 0 2
  • JVM內存管理 根據JVM規(guī)范,JVM把內存劃分成了如下幾個區(qū)域: 方法區(qū)(Method Area) 堆區(qū)(Hea...
    Android_馮星閱讀 713評論 0 5
  • 個人專題目錄[http://www.reibang.com/u/2a55010e3a04] JVM體系結構 類裝...
    Java及SpringBoot閱讀 446評論 0 0
  • 個人專題目錄[http://www.reibang.com/u/2a55010e3a04] 4 JVM+GC解析...
    Java及SpringBoot閱讀 1,201評論 0 7
  • JVM調優(yōu)是調整:方法區(qū)和堆(主要是堆) 棧管運行酿炸,堆管存儲 堆和方法區(qū)是所有線程共享的內存區(qū)域瘫絮;棧和程序計數器是...
    江澈_SIMON閱讀 53評論 0 1