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

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

JVM垃圾收集算法

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

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


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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 日日摸日日碰夜夜爽视频网站 | 欧美日韩一区二区高清视 | 美女天天射| 激情丁香开心久久综合 | 黄色一级片a | 国产一区二区中文字幕 | 香蕉蕉亚亚洲aav综合 | 国产一级特黄aa毛片 | 欧美日本在线观看 | 手机看片1204国内基地在线 | 欧美日韩国产高清视频 | 人人做人人性 | 天天干天天天天 | 欧美性video精品 | 韩国色网| 最好看的毛片 | 女人洗澡一级毛片一级毛片 | 成人在色线视频在线观看免费大全 | 成 人 黄 色 大片 | 香蕉视频一区 | 日日日操操操 | 免费观看60秒做受视频 | 夜夜偷天天爽夜夜爱 | 国产亚洲综合激情校园小说 | 在线精品小视频 | 国产无内制服肉丝精品视频 | 国产一级一片免费播放i | 激情综合婷婷亚洲图片 | 日韩欧美亚洲另类 | 在线免费视频你懂的 | 手机在线精品视频每日更新 | 欧美精品xxx | 久久综合一区二区 | 日日操夜夜爱 | 亚洲精品国产综合一线久久 | 国产剧情乱偷 | 人人模人人 | 久久天天躁夜夜躁狠狠躁2019 | 精品国产麻豆免费网站 | 一级做a爱过程免费视频高清 | 欧美国产激情二区三区 |