黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 JVM垃圾收集算法

JVM垃圾收集算法

更新時間:2020-09-30 15:27:39 來源:動力節點 瀏覽1537次

算法(Algorithm)是指解題方案的準確而完整的描述,是一系列解決問題的清晰指令,算法代表著用系統的方法描述解決問題的策略機制。而JVM(Java Virtual Machine)則是Java虛擬機,是一種用于計算設備的規范。JVM垃圾收集算法是JVM和算法的完美結合,本文,讓我們一起來探究這些神奇的JVM垃圾收集算法。


1.標記-清除算法

標記-清除算法分為兩個階段:

· 標記階段:標記可以被回收的對象;

· 清除階段:回收被標記的對象內存;

標記-清除算法時最基礎的算法,因為后面提到的垃圾回收算法都是基于此算法的基礎上面改造的,標記-清除算法的執行過程如下:

image.png


標記-清除算法主要有兩個缺點:一是標記和清除的效率都不高;二是如上圖所示,在標記清除可回收的對象空間后,會產生大量不連續的內存碎片,碎片太多可能會導致后續沒有足夠的內存分配給較大的對象,從而導致觸發新一輪的垃圾收集動作。


2.復制算法

為了解決標記-清除算法帶來的內存碎片的問題,于是提出了復制算法。復制算法把內存空間劃分為大小相等的兩塊,每次只使用其中的一塊,然后再把另一塊內存空間清理掉:

image.png


復制算法存在著復制效率低的不足,并且如果不想浪費 50% 空間內存,則需要提供額外的空間擔保,以應對被使用的內存中所有的對象都 100% 存活的極端情況。

3.標記-整理算法

復制算法一般不使用在老年代,因為在老年代中,大部分的對象的存活率比較高,選擇復制算法就會導致過多的復制操作,導致效率變低。同時也不采用標記-清除算法,因為會產生過多的內存碎片,導致容易觸發新的一輪垃圾回收動作。于是出現了一種標記-整理算法(標記-壓縮算法)。標記-整理算法與標記-清除算法不同的是,在標記完內存中的對象以后,把存活下來的對象壓縮到內存的一端,使得他們緊湊地排序在一起,然后對存活對象邊界外的對象進行回收。

image.png


4.分代收集算法

分代收集算法會結合不同的多種垃圾算法來處理不同的空間,因此在學習分代收集算法之前首先需要了解 Java 堆的空間劃分。Java 堆被劃分為新生代(Young Generation)和老年代(Tenured Generation),而新生代又被細分為 Eden 空間、From Survivor 空間和 To Survivor 空間。因為在 Java 堆里面,大部分對象都是"朝生夕滅",只有少數的對象的生命周期比較長,甚至有的對象的生命周期和虛擬機的生命周期一樣長,對不同對象地生命周期采用不同的垃圾收集算法,這就是分代收集的概念。


以上就是對JVM垃圾收集算法的完整介紹,想必也足以讓大家領略到JVM垃圾收集算法的魅力所在,當然,這只是JVM垃圾收集算法的一個很小的體現方式,在本站的Java數據結構與算法實戰教程中還有更多神奇的算法等你來一探究竟!


提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 天天色天天干天天 | 97久久人人| 免费一级黄色毛片 | 久久大胆视频 | 日韩免费一区二区三区 | 国产97色在线 | 亚洲 | 久久影院一区二区三区 | 你懂的网站在线观看 | 男女性免费视频观看 | 久久久久久久99精品免费观看 | 成年人在线免费观看视频网站 | 三级黄色毛片网站 | 国产bbw| 成人在线播放网站 | 日韩国产三级 | 成 人 免 费 黄 色 | 欧美激情一区 | 三级黄色片日本 | 精品国产免费人成高清 | 免费特黄| 一级毛片免费看 | 伊人精品综合 | 成人免费视频无遮挡在线看 | 日韩一级欧美一级 | 一本到高清 | 狠狠色噜噜狠狠狠合久 | 91高素质城中村在线观看 | 成人性一级视频在线观看 | 天天插天天射天天干 | 日日热 | 在线视频第一页 | 欧美 日韩 国产在线 | 五月天伊人| 国产骚熟 | 波多野结衣资源在线 | 色综合在 | 美国一级特色大黄 | 国产成人高清精品免费观看 | 国产成人综合91精品 | 99视频在线观看免费 | 国产精品久久亚洲一区二区 |