高級工程師---JVM第二期

問題1:垃圾回收策略?
答: 1.引用基數(shù):原理是此對象有一個引用就增加一個計數(shù),刪除一個引用就減少一個計數(shù)院水。致命的是無法處理循環(huán)
引用的問題。
2.標記清除:第一階段简十,從引用根節(jié)點開始標記所有被引用的對象
第二階段檬某,遍歷整個堆,把未標記的對象清除
缺點:需要暫停整個應用螟蝙,同時產(chǎn)生內(nèi)存碎片
3.復制:內(nèi)存劃分為兩個相等的區(qū)域恢恼,每次只使用一個區(qū)域,垃圾回收時胰默,遍歷當前使用區(qū)域场斑,把正在使用的對
象復制到另一個區(qū)域,復制成本小初坠,且可進行內(nèi)存整理
缺點:需要雙倍內(nèi)存空間
4.標記整理:第一階段和簸,從根節(jié)點開始標記所有被引用的對象
第二階段彭雾,遍歷整個堆碟刺,壓縮未標記對象到堆的其中一塊,按順序排放
優(yōu)點:避免復制算法的浪費空間薯酝,也避免內(nèi)存碎片
補充:引用根節(jié)點指的是棧與靜態(tài)變量寄存器之類的半沽。最簡單的java棧就是java程序執(zhí)行的main函數(shù)--標記清除


問題2:分代爽柒?
答: 1.分代(年輕代,老年代者填,永久代)是基于不同對象的生命周期不同浩村,為了提高回收的效率(socket,session這種對象周期很長占哟,String這種不可變對象基本用一次就不用了)(標記整理)心墅。
2.年輕代:一個Eden區(qū),兩個Survivor區(qū)榨乎。大部分對象在Eden區(qū)生成怎燥。當Eden區(qū)滿,還存活的對象被復制到一
個Survivor區(qū)蜜暑,當這個Survivor區(qū)也滿了铐姚,此區(qū)對象被復制到另一個Survivor中,當這個Survivor也滿
了肛捍,從第一個Survivor復制過來的對象依舊存活的隐绵,就轉(zhuǎn)入老年代。兩個Surivor部分前后兩個Survivor
總有一個是空的拙毫。新對象生成申請空間失敗時依许,觸發(fā)Scavenge GC ,清理Eden到survivor缀蹄,存活的
survivor復制到老年代(標記清除算法)
3.老年代: 經(jīng)過多次垃圾回收后依舊存活的對象悍手,什么周期長的對象,比如session袍患,線程之類的(full GC)
4.永久代:靜態(tài)文件坦康,java類,方法之類的诡延,一般堆垃圾回收影響不大滞欠,但是動態(tài)調(diào)用會生成新class,比如
hibernate肆良,需要調(diào)大老年代(full GC標記清除算法)
---------------------------------------------------------------------------------------------------------------------------------------------------------問題3:垃圾收集算法
答: 1.串行垃圾收集器線程:單處理器機器(很少了現(xiàn)在)筛璧,數(shù)據(jù)量小的情況下(100m),可使用-
XX:+UseSericalGC打開
2.并行垃圾收集器線程:多核心機器惹恃,不設(shè)置老年代手機還是單線程的夭谤,使用-XX:+UseParallelOldGC打開
缺點:響應時間加長
3.并發(fā)垃圾收集器:對時間響應敏感的大規(guī)模應用,使用-XX:+UseConcMarkSweepGC打開巫糙,主要用于減
少老年代暫停時間
缺點:在應用云信的同時進行垃圾回收朗儒,會有浮動垃圾產(chǎn)生,所以需要預留百分之二十的空間暫存這些垃圾。
總結(jié):小破機器用串行垃圾收集器醉锄,吞吐量為重的用并行乏悄,時間敏感的用并發(fā)
補充:吞吐量=執(zhí)行用戶代碼時間/總時間

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市恳不,隨后出現(xiàn)的幾起案子檩小,更是在濱河造成了極大的恐慌,老刑警劉巖烟勋,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件规求,死亡現(xiàn)場離奇詭異,居然都是意外死亡卵惦,警方通過查閱死者的電腦和手機颓哮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鸵荠,“玉大人冕茅,你說我怎么就攤上這事∮颊遥” “怎么了姨伤?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長庸疾。 經(jīng)常有香客問我乍楚,道長,這世上最難降的妖魔是什么届慈? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任徒溪,我火速辦了婚禮,結(jié)果婚禮上金顿,老公的妹妹穿的比我還像新娘臊泌。我一直安慰自己,他們只是感情好揍拆,可當我...
    茶點故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布渠概。 她就那樣靜靜地躺著,像睡著了一般嫂拴。 火紅的嫁衣襯著肌膚如雪播揪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天筒狠,我揣著相機與錄音猪狈,去河邊找鬼。 笑死辩恼,一個胖子當著我的面吹牛雇庙,可吹牛的內(nèi)容都是我干的谓形。 我是一名探鬼主播,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼状共,長吁一口氣:“原來是場噩夢啊……” “哼套耕!你這毒婦竟也來了谁帕?” 一聲冷哼從身側(cè)響起峡继,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎匈挖,沒想到半個月后碾牌,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡儡循,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年舶吗,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片择膝。...
    茶點故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡誓琼,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出肴捉,到底是詐尸還是另有隱情腹侣,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布齿穗,位于F島的核電站傲隶,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏窃页。R本人自食惡果不足惜跺株,卻給世界環(huán)境...
    茶點故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望脖卖。 院中可真熱鬧乒省,春花似錦、人聲如沸畦木。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽馋劈。三九已至攻锰,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間妓雾,已是汗流浹背娶吞。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留械姻,地道東北人妒蛇。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓机断,卻偏偏與公主長得像,于是被迫代替她去往敵國和親绣夺。 傳聞我的和親對象是個殘疾皇子吏奸,可洞房花燭夜當晚...
    茶點故事閱讀 45,512評論 2 359

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

  • JVM架構(gòu) 當一個程序啟動之前,它的class會被類裝載器裝入方法區(qū)(Permanent區(qū))陶耍,執(zhí)行引擎讀取方法區(qū)的...
    cocohaifang閱讀 1,673評論 0 7
  • 轉(zhuǎn)載blog.csdn.net/ning109314/article/details/10411495/ JVM工...
    forever_smile閱讀 5,373評論 1 56
  • Java 虛擬機有自己完善的硬件架構(gòu), 如處理器奋蔚、堆棧、寄存器等烈钞,還具有相應的指令系統(tǒng)泊碑。JVM 屏蔽了與具體操作系...
    尹小凱閱讀 1,695評論 0 10
  • 內(nèi)存溢出和內(nèi)存泄漏的區(qū)別 內(nèi)存溢出:out of memory,是指程序在申請內(nèi)存時毯欣,沒有足夠的內(nèi)存空間供其使用馒过,...
    Aimerwhy閱讀 744評論 0 1
  • Java和C++之間有一堵由內(nèi)存動態(tài)分配和垃圾收集技術(shù)所圍成的“高墻”,墻外面的人想進來酗钞,墻里面的人想出來腹忽。 對象...
    胡二囧閱讀 1,094評論 0 4