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

【JVM】JVM 垃圾回收算法

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

前言

目前JVM中有三種常見(jiàn)的垃圾回收算法,分別是:標(biāo)記清除、標(biāo)記整理和復(fù)制,這三種垃圾回收算法各有優(yōu)缺點(diǎn),下面逐一介紹。
在讀本篇文章中,如果對(duì)JVM中哪個(gè)是垃圾,哪個(gè)不是垃圾,JVM到底是怎么知道的,請(qǐng)先讀下面這篇文章

【JVM】JVM 判斷對(duì)象存活算法(引用計(jì)數(shù)算法與根可達(dá)性分析算法)


標(biāo)記清除(Mark-Sweep)

介紹

標(biāo)記清除算法主要分成兩個(gè)階段,就跟算法的名字一樣,標(biāo)記和清除,標(biāo)記階段是發(fā)現(xiàn)哪些對(duì)象是個(gè)垃圾后,打上標(biāo)記,等到都標(biāo)記完成后,就是清除階段,清除階段就是把該對(duì)象清掉。

下面是一個(gè)示例圖,上面的圖代表清理前的時(shí)候,內(nèi)存中的對(duì)象分布情況,下面的圖代表經(jīng)過(guò)標(biāo)記清除算法后,內(nèi)存中的對(duì)象分布情況:

【JVM】JVM 垃圾回收算法

優(yōu)缺點(diǎn)

優(yōu)點(diǎn):效率高。
缺點(diǎn):可用內(nèi)存太分散,稱之為內(nèi)存碎片化,如果這時(shí)候來(lái)一個(gè)大的對(duì)象,需要占到連續(xù)的內(nèi)存區(qū)域,就會(huì)出現(xiàn)找不到可用的連續(xù)內(nèi)存區(qū)域的情況。


復(fù)制(拷貝 Copying)

介紹

復(fù)制算法的思路是將內(nèi)存區(qū)域一分為二,分別為A區(qū)域和B區(qū)域(注:這里的A區(qū)域和B區(qū)域只是方便理解),新產(chǎn)生的對(duì)象會(huì)丟在A區(qū)域內(nèi),當(dāng)A區(qū)域滿了以后,就會(huì)把A區(qū)域內(nèi)的存活對(duì)象都移到B區(qū)域內(nèi),并在B區(qū)域內(nèi)把存活對(duì)象排列好,然后A區(qū)域整體清理回收;那么如果B區(qū)域滿了以后呢,就會(huì)把B區(qū)域內(nèi)的存活對(duì)象移到A區(qū)域內(nèi),在A區(qū)域內(nèi)把存活對(duì)象排列好,然后把B區(qū)域整體清理回收,循環(huán)往復(fù),下面是示例圖:
【JVM】JVM 垃圾回收算法

優(yōu)缺點(diǎn)

優(yōu)點(diǎn):效率高,并且把內(nèi)存空間整理了。
缺點(diǎn):浪費(fèi)內(nèi)存,只能用內(nèi)存的一半。


標(biāo)記整理(Mark-Compact)

介紹

標(biāo)記整理算法與標(biāo)記清除算法很像,標(biāo)記整理算法可分為三個(gè)階段,前面兩個(gè)階段與標(biāo)記清除算法本身一樣,標(biāo)記階段是發(fā)現(xiàn)哪些對(duì)象是個(gè)垃圾后,打上標(biāo)記,等到都標(biāo)記完成后,就是清除階段,清除階段就是把該對(duì)象清掉,剩下就到了整理階段,整理階段是將剩余的存活對(duì)象重新在內(nèi)存區(qū)域內(nèi)排列,這樣做就會(huì)避免內(nèi)存碎片化,下面是示例圖。

【JVM】JVM 垃圾回收算法

優(yōu)缺點(diǎn)

優(yōu)點(diǎn):清除垃圾對(duì)象后把內(nèi)存排列好了。
缺點(diǎn):效率低,是這三種算法中效率最低的,。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-490558.html





End


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

本文來(lái)自互聯(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)文章

  • 【JVM】JVM 垃圾回收算法

    【JVM】JVM 垃圾回收算法

    目前JVM中有三種常見(jiàn)的垃圾回收算法,分別是:標(biāo)記清除、標(biāo)記整理和復(fù)制,這三種垃圾回收算法各有優(yōu)缺點(diǎn),下面逐一介紹。 在讀本篇文章中,如果對(duì)JVM中哪個(gè)是垃圾,哪個(gè)不是垃圾,JVM到底是怎么知道的,請(qǐng)先讀下面這篇文章 【JVM】JVM 判斷對(duì)象存活算法(引用計(jì)數(shù)算法

    2024年02月09日
    瀏覽(26)
  • JVM基礎(chǔ)(5)——JVM垃圾回收算法

    JVM基礎(chǔ)(5)——JVM垃圾回收算法

    作者簡(jiǎn)介:大家好,我是smart哥,前中興通訊、美團(tuán)架構(gòu)師,現(xiàn)某互聯(lián)網(wǎng)公司CTO 聯(lián)系qq:184480602,加我進(jìn)群,大家一起學(xué)習(xí),一起進(jìn)步,一起對(duì)抗互聯(lián)網(wǎng)寒冬 學(xué)習(xí)必須往深處挖,挖的越深,基礎(chǔ)越扎實(shí)! 階段1、深入多線程 階段2、深入多線程設(shè)計(jì)模式 階段3、深入juc源碼解析

    2024年02月02日
    瀏覽(31)
  • JVM---垃圾回收算法介紹

    目錄 分代收集理論 三種垃圾回收算法 標(biāo)記-清除算法(最基礎(chǔ)的、基本不用) 標(biāo)記-復(fù)制算法 標(biāo)記-整理算法 正式因?yàn)閖vm有了垃圾回收機(jī)制,作為java開(kāi)發(fā)者不會(huì)去特備關(guān)注內(nèi)存,不像C和C++。 優(yōu)點(diǎn) :開(kāi)發(fā)門檻低、安全 缺點(diǎn) :性能問(wèn)題。c和c++可以自己操控內(nèi)存等,性能更高

    2024年02月12日
    瀏覽(23)
  • 【JVM】垃圾回收算法

    【JVM】垃圾回收算法

    標(biāo)記-清除算法將垃圾回收分為兩個(gè)階段,標(biāo)記階段和清除階段 在標(biāo)記階段首先通過(guò)GC Roots,標(biāo)記所有從根節(jié)點(diǎn)開(kāi)始的對(duì)象,未被標(biāo)記的對(duì)象就是未引用的垃圾對(duì)象。然后,在清除階段,清除未被標(biāo)記的對(duì)象。 適合場(chǎng)景: 1、存活對(duì)象較多的情況下比較高效 2、使用于老年代

    2024年01月16日
    瀏覽(66)
  • jvm垃圾回收相關(guān)的算法

    JVM主要通過(guò)以下幾種方式來(lái)判斷對(duì)象是否需要回收: 引用計(jì)數(shù)法:JVM通過(guò)引用計(jì)數(shù)器來(lái)判斷對(duì)象的引用數(shù)量,當(dāng)引用數(shù)量為0時(shí),表示對(duì)象可以被回收。 可達(dá)性分析算法:JVM通過(guò)根對(duì)象(如棧中的引用、靜態(tài)變量等)出發(fā),對(duì)對(duì)象進(jìn)行可達(dá)性分析,判斷對(duì)象是否可被訪問(wèn)到,

    2024年02月02日
    瀏覽(25)
  • JVM之三大垃圾回收算法

    JVM之三大垃圾回收算法

    提示:這里可以添加本文要記錄的大概內(nèi)容: 例如:隨著人工智能的不斷發(fā)展,機(jī)器學(xué)習(xí)這門技術(shù)也越來(lái)越重要,很多人都開(kāi)啟了學(xué)習(xí)機(jī)器學(xué)習(xí),本文就介紹了機(jī)器學(xué)習(xí)的基礎(chǔ)內(nèi)容。 提示:以下是本篇文章正文內(nèi)容,下面案例可供參考 復(fù)制算法的核心就是, 將原有的內(nèi)存空

    2024年02月14日
    瀏覽(25)
  • 【Java】圖解 JVM 垃圾回收(一):GC 判斷策略、引用類型、垃圾回收算法

    【Java】圖解 JVM 垃圾回收(一):GC 判斷策略、引用類型、垃圾回收算法

    垃圾 是指運(yùn)行程序中 沒(méi)有任何引用指向的對(duì)象 ,需要被回收。 內(nèi)存溢出 :經(jīng)過(guò)垃圾回收之后,內(nèi)存仍舊無(wú)法存儲(chǔ)新創(chuàng)建的對(duì)象,內(nèi)存不夠溢出。 內(nèi)存泄漏 :又叫 “ 存儲(chǔ)泄漏 ”,對(duì)象不會(huì)再被程序使用了,但是 GC 又不能回收它們。例如:IO 流不適用了但是沒(méi)有被 Close、

    2024年02月19日
    瀏覽(26)
  • 【JVM篇】有哪些垃圾回收算法

    【JVM篇】有哪些垃圾回收算法

    主要分為下面2個(gè)階段 標(biāo)記階段,將所有存活的對(duì)象進(jìn)行標(biāo)記。Java中使用可達(dá)性分析算法,從GC Root開(kāi)始通過(guò)引用鏈遍歷出所有存活對(duì)象 清除階段,從內(nèi)存中刪除沒(méi)有被標(biāo)記的對(duì)象(非存活對(duì)象) 優(yōu)點(diǎn):實(shí)現(xiàn)簡(jiǎn)單,只需要在第一階段給每個(gè)對(duì)象維護(hù)標(biāo)志位,第二階段刪除對(duì)象

    2024年02月21日
    瀏覽(21)
  • JVM垃圾回收算法和CMS垃圾收集器

    JVM垃圾回收算法和CMS垃圾收集器

    目錄 判斷一個(gè)對(duì)象是否死亡? 1、引用計(jì)數(shù)法? 2、可達(dá)性分析算法 三色標(biāo)記 垃圾收集算法 1、分代收集理論? 2、垃圾回收算法 標(biāo)記-清除 標(biāo)記-復(fù)制 標(biāo)記-整理 CMS(Concurrent Mark Sweep)收集器 CMS垃圾收集器步驟 CMS垃圾收集器優(yōu)缺點(diǎn) 垃圾收集需要完成的三件事情: 哪些內(nèi)存需

    2024年02月10日
    瀏覽(27)
  • JVM學(xué)習(xí) GC垃圾回收機(jī)制 (堆內(nèi)存結(jié)構(gòu)、GC分類、四大垃圾回收算法)

    JVM學(xué)習(xí) GC垃圾回收機(jī)制 (堆內(nèi)存結(jié)構(gòu)、GC分類、四大垃圾回收算法)

    ?? 作者簡(jiǎn)介: 努力的clz ,一個(gè)努力編程的菜鳥 ?????? ? ?? 文章專欄: 《JVM 學(xué)習(xí)筆記》 ,本專欄會(huì)專門記錄博主在學(xué)習(xí) JVM 中學(xué)習(xí)的知識(shí)點(diǎn),以及遇到的問(wèn)題。 ? ?? 文章詳情: 本篇博客是學(xué)習(xí) 【狂神說(shuō)Java】JVM快速入門篇 的學(xué)習(xí)筆記,關(guān)于 GC垃圾回收機(jī)制 (堆內(nèi)存結(jié)

    2023年04月19日
    瀏覽(24)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包