国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

java八股文面試[JVM]——垃圾回收器

這篇具有很好參考價(jià)值的文章主要介紹了java八股文面試[JVM]——垃圾回收器。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

jvm結(jié)構(gòu)總結(jié)

?

java八股文面試[JVM]——垃圾回收器,java八股文,java,面試,jvm

java八股文面試[JVM]——垃圾回收器,java八股文,java,面試,jvm

常見的垃圾回收器有哪些?

java八股文面試[JVM]——垃圾回收器,java八股文,java,面試,jvm

java八股文面試[JVM]——垃圾回收器,java八股文,java,面試,jvm

?java八股文面試[JVM]——垃圾回收器,java八股文,java,面試,jvm

?java八股文面試[JVM]——垃圾回收器,java八股文,java,面試,jvm

java八股文面試[JVM]——垃圾回收器,java八股文,java,面試,jvm

java八股文面試[JVM]——垃圾回收器,java八股文,java,面試,jvm

java八股文面試[JVM]——垃圾回收器,java八股文,java,面試,jvmCMS(Concurrent Mark Sweep)

整堆收集器: G1

由于整個(gè)過程中耗時(shí)最長(zhǎng)并發(fā)標(biāo)記并發(fā)清除過程中,收集器線程都可以與用戶線程一起工作,所以總體上來說,CMS收集器的內(nèi)存回收過程是與用戶線程一起并發(fā)地執(zhí)行。老年代收集器(新生代使用ParNew)

參數(shù)控制:

-XX:+UseConcMarkSweepGC 使用CMS收集器
-XX:+ UseCMSCompactAtFullCollection Full GC后,進(jìn)行一次碎片整理;整理過程是獨(dú)占的,會(huì)引起停頓時(shí)間變長(zhǎng)
-XX:+CMSFullGCsBeforeCompaction 設(shè)置進(jìn)行幾次Full GC后,進(jìn)行一次碎片整理
-XX:ParallelCMSThreads 設(shè)定CMS的線程數(shù)量(一般情況約等于可用CPU數(shù)量)

cms是一種預(yù)處理垃圾回收器,它不能等到old內(nèi)存用盡時(shí)回收,需要在內(nèi)存用盡前,完成回收操作,否則會(huì)導(dǎo)致并發(fā)回收失敗
??java八股文面試[JVM]——垃圾回收器,java八股文,java,面試,jvm

java八股文面試[JVM]——垃圾回收器,java八股文,java,面試,jvm

G1是目前技術(shù)發(fā)展的最前沿成果之一,HotSpot開發(fā)團(tuán)隊(duì)賦予它的使命是未來可以替換掉JDK1.5中發(fā)布的CMS收集器

上面提到的垃圾收集器,收集的范圍都是整個(gè)新生代或者老年代,而G1不再是這樣。使用G1收集器時(shí),Java堆的內(nèi)存布局與其他收集器有很大差別,它將整個(gè)Java堆劃分為多個(gè)大小相等的獨(dú)立區(qū)域(Region),雖然還保留有新生代和老年代的概念,但新生代和老年代不再是物理隔閡了,它們都是一部分(可以不連續(xù))Region的集合。

java八股文面試[JVM]——垃圾回收器,java八股文,java,面試,jvm

每個(gè)Region被標(biāo)記了E、S、O和H,說明每個(gè)Region在運(yùn)行時(shí)都充當(dāng)了一種角色,其中H是以往算法中沒有的,它代表Humongous,這表示這些Region存儲(chǔ)的是巨型對(duì)象(humongous object,H-obj),當(dāng)新建對(duì)象大小超過Region大小一半時(shí),直接在新的一個(gè)或多個(gè)連續(xù)Region中分配,并標(biāo)記為H。

為了避免全堆掃描,G1使用了Remembered Set來管理相關(guān)的對(duì)象引用信息。當(dāng)進(jìn)行內(nèi)存回收時(shí),在GC根節(jié)點(diǎn)的枚舉范圍中加入Remembered Set即可保證不對(duì)全堆掃描也不會(huì)有遺漏了。

如果不計(jì)算維護(hù)Remembered Set的操作,G1收集器的運(yùn)作大致可劃分為以下幾個(gè)步驟:

1、初始標(biāo)記(Initial Making)

2、并發(fā)標(biāo)記(Concurrent Marking)

3、最終標(biāo)記(Final Marking)

4、篩選回收(Live Data Counting and Evacuation)

看上去跟CMS收集器的運(yùn)作過程有幾分相似,不過確實(shí)也這樣。初始階段僅僅只是標(biāo)記一下GC Roots能直接關(guān)聯(lián)到的對(duì)象,并且修改TAMS(Next Top Mark Start)的值,讓下一階段用戶程序并發(fā)運(yùn)行時(shí),能在正確可以用的Region中創(chuàng)建新對(duì)象,這個(gè)階段需要停頓線程,但耗時(shí)很短。并發(fā)標(biāo)記階段是從GC Roots開始對(duì)堆中對(duì)象進(jìn)行可達(dá)性分析,找出存活對(duì)象,這一階段耗時(shí)較長(zhǎng)但能與用戶線程并發(fā)運(yùn)行。而最終標(biāo)記階段需要把Remembered Set Logs的數(shù)據(jù)合并到Remembered Set中,這階段需要停頓線程,但可并行執(zhí)行。最后篩選回收階段首先對(duì)各個(gè)Region的回收價(jià)值和成本進(jìn)行排序,根據(jù)用戶所期望的GC停頓時(shí)間來制定回收計(jì)劃,這一過程同樣是需要停頓線程的,但Sun公司透露這個(gè)階段其實(shí)也可以做到并發(fā),但考慮到停頓線程將大幅度提高收集效率,所以選擇停頓。下圖為G1收集器運(yùn)行示意圖:

G1收集器是基于標(biāo)記整理算法實(shí)現(xiàn)的,不會(huì)產(chǎn)生空間碎片,可以精確地控制停頓,將堆劃分為多個(gè)大小固定的獨(dú)立區(qū)域,并跟蹤這些區(qū)域的垃圾堆積程度,在后臺(tái)維護(hù)一個(gè)優(yōu)先列表,每次根據(jù)允許的收集時(shí)間,優(yōu)先回收垃圾最多的區(qū)域(Garbage First)。

java八股文面試[JVM]——垃圾回收器,java八股文,java,面試,jvm

java八股文面試[JVM]——垃圾回收器,java八股文,java,面試,jvm

java八股文面試[JVM]——垃圾回收器,java八股文,java,面試,jvm

?垃圾回收器比較

java八股文面試[JVM]——垃圾回收器,java八股文,java,面試,jvm

垃圾回收器選擇策略?

客戶端程序 : Serial + Serial Old;

吞吐率優(yōu)先的服務(wù)端程序(比如:計(jì)算密集型) : Parallel Scavenge + Parallel Old;

響應(yīng)時(shí)間優(yōu)先的服務(wù)端程序 :ParNew + CMS。
?

知識(shí)來源:

【2023年面試】jvm有哪些垃圾回收器,實(shí)際中如何選擇_嗶哩嗶哩_bilibili

JVM學(xué)習(xí)筆記(一)_卷心菜不卷Iris的博客-CSDN博客文章來源地址http://www.zghlxwxcb.cn/news/detail-674563.html

到了這里,關(guān)于java八股文面試[JVM]——垃圾回收器的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • java八股文面試[JVM]——雙親委派模型

    java八股文面試[JVM]——雙親委派模型

    1.當(dāng) AppClassLoader 去加載一個(gè)class時(shí),它首先不會(huì)自己去嘗試加載這個(gè)類,而是把類加載請(qǐng)求委托給父加載器 ExtClassLoader 去完成。 2.當(dāng)ExtClassLoader去加載一個(gè)class時(shí),它首先也不會(huì)去嘗試加載這個(gè)類,而是把類加載請(qǐng)求委托給父加載器 BootstrapClassLoader 去完成。 3.如果BootstrapClas

    2024年02月11日
    瀏覽(35)
  • java面試八股文_虛擬機(jī)篇(jvm)

    java面試八股文_虛擬機(jī)篇(jvm)

    要求 掌握 JVM 內(nèi)存結(jié)構(gòu)劃分 尤其要知道方法區(qū)、永久代、元空間的關(guān)系 結(jié)合一段 java 代碼的執(zhí)行理解內(nèi)存劃分 執(zhí)行 javac 命令編譯 源代碼(java Source) 為 字節(jié)碼 執(zhí)行 java 命令 創(chuàng)建 JVM,調(diào)用類加載子系統(tǒng)加載 class,將類的信息存入 方法區(qū) 創(chuàng)建 main 線程,使用的內(nèi)存區(qū)域是 J

    2023年04月08日
    瀏覽(15)
  • 一天吃透JVM面試八股文

    JVM,全稱Java Virtual Machine(Java虛擬機(jī)),是通過在實(shí)際的計(jì)算機(jī)上仿真模擬各種計(jì)算機(jī)功能來實(shí)現(xiàn)的。由 一套字節(jié)碼指令集、一組寄存器、一個(gè)棧、一個(gè)垃圾回收堆和一個(gè)存儲(chǔ)方法域等 組成。JVM屏蔽了與操作系統(tǒng)平臺(tái)相關(guān)的信息,使得Java程序只需要生成在Java虛擬機(jī)上運(yùn)行的

    2023年04月19日
    瀏覽(30)
  • Java虛擬機(jī)(JVM)、垃圾回收器

    Java虛擬機(jī)(JVM)、垃圾回收器

    JRE(Java Runtime Environment,運(yùn)行環(huán)境) 所有的程序都要在JRE下才能夠運(yùn)行。包括JVM和Java核心類庫和支持文件。 JDK(Java Development Kit,開發(fā)工具包) 用來編譯、調(diào)試Java程序的開發(fā)工具包。包括Java工具(javac/java/jdb等)和Java基礎(chǔ)的類庫(java API )。 JVM(Java Virtual Machine,虛擬機(jī)) JRE的一部分,

    2024年02月12日
    瀏覽(21)
  • JVM | 垃圾回收器(GC)- Java內(nèi)存管理的守護(hù)者

    JVM | 垃圾回收器(GC)- Java內(nèi)存管理的守護(hù)者

    在編程世界中, 有效的內(nèi)存管理 是至關(guān)重要的。這不僅確保了應(yīng)用程序的穩(wěn)定運(yùn)行,還可以大大提高性能和響應(yīng)速度。作為世界上最受歡迎的編程語言之一,通過Java虛擬機(jī)內(nèi)部的垃圾回收器組件來自動(dòng)管理內(nèi)存,是成為之一的其中一項(xiàng)必不可少的技術(shù)點(diǎn)。 在許多傳統(tǒng)的編程

    2024年02月09日
    瀏覽(29)
  • JVM——垃圾回收(垃圾回收算法+分代垃圾回收+垃圾回收器)

    JVM——垃圾回收(垃圾回收算法+分代垃圾回收+垃圾回收器)

    只要一個(gè)對(duì)象被其他對(duì)象所引用,就要讓該對(duì)象的技術(shù)加1,某個(gè)對(duì)象不再引用其,則讓它計(jì)數(shù)減1。當(dāng)計(jì)數(shù)變?yōu)?時(shí)就可以作為垃圾被回收。 有一個(gè)弊端叫做循環(huán)引用,兩個(gè)的引用計(jì)數(shù)都是1,導(dǎo)致不能作為垃圾回收,會(huì)造成內(nèi)存泄露。 java虛擬機(jī)沒有采用該算法。 該算法需要

    2024年02月12日
    瀏覽(18)
  • 【java八股文】之JVM基礎(chǔ)篇

    【java八股文】之JVM基礎(chǔ)篇

    【java八股文】之JVM基礎(chǔ)篇-CSDN博客 【java八股文】之MYSQL基礎(chǔ)篇-CSDN博客 【java八股文】之Redis基礎(chǔ)篇-CSDN博客 【java八股文】之Spring系列篇-CSDN博客 【java八股文】之分布式系列篇-CSDN博客 【java八股文】之多線程篇-CSDN博客 【java八股文】之JVM基礎(chǔ)篇-CSDN博客 【java八股文】之計(jì)算

    2024年01月17日
    瀏覽(70)
  • JVM——垃圾回收器G1+垃圾回收調(diào)優(yōu)

    JVM——垃圾回收器G1+垃圾回收調(diào)優(yōu)

    定義: 取代了CMS垃圾回收器。和CMS一樣時(shí)并發(fā)的。 ?適用場(chǎng)景: 物理上分區(qū),邏輯上分代。? ?相關(guān)JVM參數(shù): -XX:+UseG1GC -XX:G1HeapRegionSize=size -XX:MaxGCPauseMillis=time ?三個(gè)回收階段,第一個(gè)是新生代回收,第二個(gè)是新生代+CM,第三個(gè)是混合回收。 當(dāng)老年代內(nèi)存超過閾值,會(huì)在新生代垃

    2024年02月12日
    瀏覽(17)
  • Java 面試八股文

    參考: 2023年 Java 面試八股文(20w字)_json解析失敗_leader_song的博客-CSDN博客

    2024年02月13日
    瀏覽(26)
  • Java面試必備八股文

    Java面試必備八股文

    1.1)Java有哪幾種數(shù)據(jù)類型 基本數(shù)據(jù)類型:byte(1字節(jié)) short(2字節(jié)) int(4字節(jié)) long(8字節(jié)) float(4字節(jié)) double(8字節(jié)) char(2字節(jié)) boolean(1字節(jié)) 引用數(shù)據(jù)類型:String 類 接口 抽象類 枚舉 數(shù)組 1.2)JVM、JRE和JDK的關(guān)系 JVM指的是Java的虛擬機(jī),Java程序需要運(yùn)行在虛擬機(jī)上

    2023年04月08日
    瀏覽(35)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包