大战熟女丰满人妻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數據結構與算法實戰教程中還有更多神奇的算法等你來一探究竟!


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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 亚洲综合一区二区三区四区 | 一区二区三区中文字幕 | 天天综合天天操 | 中国美女hdxxxxx | 精品玖玖 | 男人爱看的网站 | 99久久国产综合精品网成人影院 | 激情五月社区 | 曰曰鲁夜夜免费播放视频 | 草的爽免费视频 | 福利免费观看 | 成人久久影院 | 奇米最新视频 | 在线亚洲欧美日韩 | 黄色生活毛片 | 欧洲美女bbbxxxxxx| 超级乱淫视频aⅴ播放视频 超级乱淫视频播放日韩 | 天天欲色成人综合网站 | 中文字幕日韩国产 | 国产你懂得 | 欧美日韩乱码毛片免费观看 | a毛片免费观看 | 天天摸天天操天天爽 | 九九视频免费看 | 亚洲波多野结衣日韩在线 | 成年人网站在线 | 欧美在线综合 | 国产区精品一区二区不卡中文 | 女人18毛片一级毛片在线 | 网红被免费网站视频在线 | 亚洲一级毛片在线观 | 香蕉视频在线观看www | 欧美大狠狠大臿蕉香蕉大视频 | 另类重口性色老妇 | 元龙第三季免费观看 | 久久久久在线观看 | 夜夜夜夜夜夜爽噜噜噜噜噜噜 | 精品福利一区二区三区免费视频 | 91视频日韩 | 思99re久久这里只有精品首页 | 欧美人牲囗毛片 |