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

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

JVM垃圾收集算法

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

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


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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 久久综合中文字幕一区二区三区 | 九九精品九九 | 亚洲精品美女在线观看 | 日韩午夜小视频 | 韩国一级理黄论片 | 欧美一区二区三区综合色视频 | 牛牛影视在线 | 农村寡妇一级毛片免费播放 | 一区二区不卡久久精品 | 美女天天操 | 亚洲国产成人成上人色 | 亚洲最新在线 | 99在线国产视频 | 久久这里有精品视频任我鲁 | 日本高清中文字幕在线观穿线视频 | 久久久精品日本一区二区三区 | 99久久精品久久久 | 国外成人免费高清激情视频 | 久久精品中文字幕免费 | 日日日操| 色综合久久一区二区三区 | 成人免费一级毛片在线播放视频 | 五月婷婷激情在线 | 亚洲高清日韩精品第一区 | 久草免费在线观看视频 | 国产精品成人网 | 国产成人精品实拍在线 | 亚洲成人在线观看视频 | 欧美人一级淫片a免费播放 欧美人与zoxxxx另类9 | 一区免费在线观看 | 911视频免费版 | 91福利在线观看 | 亚洲精品中文字幕不卡在线 | 亚洲加勒比久久88色综合1 | 日本草草影院 | 奇米影视小说 | 素人巨乳被调教 | 欧美日韩免费做爰视频 | 中文字幕在线视频免费观看 | 精品亚洲综合在线第一区 | www.日本一区 |