大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

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

JVM垃圾收集算法

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

算法(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數據結構與算法實戰教程中還有更多神奇的算法等你來一探究竟!


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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 新久草在线 | 天天干天天爽天天操 | 午夜久久久久久久 | 久久精品国产久精国产 | 久久成人18免费 | 国产精品一区二区久久不卡 | 国产视频一区二区在线播放 | 香蕉视频网站在线观看 | 亚洲va欧美va人人爽夜夜嗨 | 91这里只有精品 | 九九九国产在线 | 亚洲欧洲国产成人精品 | 国产高清专区 | 99久久免费看国产精品 | 操操操综合网 | 久热re国产手机在线观看 | 91九色精品国产免费 | 国产一区日韩二区欧美三 | 久久综合九色综合97婷婷女人 | 夜夜躁日日躁狠狠 | 国产日韩精品一区二区在线观看 | 婷婷视频网站 | 97免费在线观看视频 | 国产18到20岁美女毛片 | 视频一区欧美 | 99热久久这里只精品国产ww | 激情综合五月亚洲婷婷 | 97影院在线观看 | 日本不卡在线观看免费v | 最新国产午夜精品视频不卡 | 99热这里只有精品在在 | 日韩国产成人精品视频人 | 又刺激又黄的一级毛片 | 两性视频久久 | 激情综合网色播五月 | 91在线精品老司机免费播放 | 青青久在线视频免费视频 | 雅虎日本免费一区二区三区 | 日韩在线手机看片免费看 | 国产福利视频一区二区三区 | 日本一本一道 |