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

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學(xué)習(xí)攻略 Java學(xué)習(xí) Java入門教程推薦,GC垃圾回收

Java入門教程推薦,GC垃圾回收

更新時(shí)間:2020-04-22 12:41:07 來源:動(dòng)力節(jié)點(diǎn) 瀏覽2383次

    只要掌握了GC垃圾回收的相關(guān)知識(shí)點(diǎn),程序員在工作中就不用擔(dān)心內(nèi)存管理了,因?yàn)槔占鲿?huì)自動(dòng)進(jìn)行管理。小編整理了GC垃圾回收的學(xué)習(xí)筆記,主要內(nèi)容包括了判斷回收條件,虛擬機(jī)頻繁fullGC的解決對(duì)策以及經(jīng)典的垃圾回收算法。大家要是對(duì)GC垃圾回收的相關(guān)學(xué)習(xí)學(xué)習(xí)感興趣,就接著看下去吧!

Java入門教程推薦,GC垃圾回收

    一、判斷回收條件

    1、可達(dá)性分析法:

    通過一系列“GCRoots”對(duì)象作為起點(diǎn)進(jìn)行搜索,如果在“GCRoots”和一個(gè)對(duì)象之間沒有可達(dá)路徑,則稱該對(duì)象是不可達(dá)的。不可達(dá)對(duì)象不一定會(huì)成為可回收對(duì)象。進(jìn)入DEAD狀態(tài)的線程還可以恢復(fù),GC不會(huì)回收它的內(nèi)存。(把一些對(duì)象當(dāng)做root對(duì)象,JVM認(rèn)為root對(duì)象是不可回收的,并且root對(duì)象引用的對(duì)象也是不可回收的)

    2、以下對(duì)象會(huì)被認(rèn)為是root對(duì)象:

    (1)虛擬機(jī)棧(棧幀中本地變量表)中引用的對(duì)象

    (2)方法區(qū)中靜態(tài)屬性引用的對(duì)象

    (3)方法區(qū)中常量引用的對(duì)象

    (4)本地方法棧中Native方法引用的對(duì)象

    3、對(duì)象被判定可被回收,需要經(jīng)歷兩個(gè)階段:

    (1)第一個(gè)階段是可達(dá)性分析,分析該對(duì)象是否可達(dá)

    (2)第二個(gè)階段是當(dāng)對(duì)象沒有重寫finalize()方法或者finalize()方法已經(jīng)被調(diào)用過,虛擬機(jī)認(rèn)為該對(duì)象不可以被救活,因此回收該對(duì)象。(finalize()方法在垃圾回收中的作用是,給該對(duì)象一次救活的機(jī)會(huì))

    4、方法區(qū)中的垃圾回收:

    (1)常量池中一些常量、符號(hào)引用沒有被引用,則會(huì)被清理出常量池

    (2)無用的類:被判定為無用的類,會(huì)被清理出方法區(qū)。判定方法如下:

    A、該類的所有實(shí)例被回收

    B、加載該類的ClassLoader被回收

    C、該類的Class對(duì)象沒有被引用

    5、finalize():

    (1)GC垃圾回收要回收一個(gè)對(duì)象的時(shí)候,調(diào)用該對(duì)象的finalize()方法。然后在下一次垃圾回收的時(shí)候,才去回收這個(gè)對(duì)象的內(nèi)存。

    (2)可以在該方法里面,指定一些對(duì)象在釋放前必須執(zhí)行的操作。

    二、虛擬機(jī)頻繁fullGC的解決對(duì)策

    (1)首先用命令查看觸發(fā)GC的原因是什么jstat–gccause進(jìn)程id

    (2)如果是System.gc(),則看下代碼哪里調(diào)用了這個(gè)方法

    (3)如果是heapinspection(內(nèi)存檢查),可能是哪里執(zhí)行jmap–histo[:live]命令

    (4)如果是GClocker,可能是程序依賴的JNI庫的原因

    三、經(jīng)典的垃圾回收算法

    1、Mark-Sweep(標(biāo)記-清除算法):

    (1)思想:標(biāo)記清除算法分為兩個(gè)階段,標(biāo)記階段和清除階段。標(biāo)記階段任務(wù)是標(biāo)記出所有需要回收的對(duì)象,清除階段就是清除被標(biāo)記對(duì)象的空間。

    (2)優(yōu)缺點(diǎn):實(shí)現(xiàn)簡單,容易產(chǎn)生內(nèi)存碎片

    2、Copying(復(fù)制清除算法):

    (1)思想:將可用內(nèi)存劃分為大小相等的兩塊,每次只使用其中的一塊。當(dāng)進(jìn)行垃圾回收的時(shí)候了,把其中存活對(duì)象全部復(fù)制到另外一塊中,然后把已使用的內(nèi)存空間一次清空掉。

    (2)優(yōu)缺點(diǎn):不容易產(chǎn)生內(nèi)存碎片;可用內(nèi)存空間少;存活對(duì)象多的話,效率低下。

    3、Mark-Compact(標(biāo)記-整理算法):

    (1)思想:先標(biāo)記存活對(duì)象,然后把存活對(duì)象向一邊移動(dòng),然后清理掉端邊界以外的內(nèi)存。

    (2)優(yōu)缺點(diǎn):不容易產(chǎn)生內(nèi)存碎片;內(nèi)存利用率高;存活對(duì)象多并且分散的時(shí)候,移動(dòng)次數(shù)多,效率低下

    4、分代收集算法

    思想:把堆分成新生代和老年代。

    (1)因?yàn)樾律看卫厥斩家厥沾蟛糠謱?duì)象,所以新生代采用Copying算法。新生代里面分成一份較大的Eden空間和兩份較小的Survivor空間。每次只使用Eden和其中一塊Survivor空間,然后垃圾回收的時(shí)候,把存活對(duì)象放到未使用的Survivor(劃分出from、to)空間中,清空Eden和剛才使用過的Survivor空間。

    (2)由于老年代每次只回收少量的對(duì)象,因此采用mark-compact算法。

    (3)在堆區(qū)外有一個(gè)永久代。對(duì)永久代的回收主要是無效的類和常量

Java入門教程推薦,GC垃圾回收

    5、GC使用時(shí)對(duì)程序的影響?垃圾回收會(huì)影響程序的性能,Java虛擬機(jī)必須要追蹤運(yùn)行程序中的有用對(duì)象,然后釋放沒用對(duì)象,這個(gè)過程消耗處理器時(shí)間

    6、幾種不同的垃圾回收類型:

    (1)MinorGC:從年輕代(包括Eden、Survivor區(qū))回收內(nèi)存。

    A、當(dāng)JVM無法為一個(gè)新的對(duì)象分配內(nèi)存的時(shí)候,越容易觸發(fā)MinorGC。所以分配率越高,內(nèi)存越來越少,越頻繁執(zhí)行MinorGC

    B、執(zhí)行MinorGC操作的時(shí)候,不會(huì)影響到永久代(Tenured)。從永久代到年輕代的引用,被當(dāng)成GCRoots,從年輕代到老年代的引用在標(biāo)記階段直接被忽略掉。

    (2)MajorGC:清理整個(gè)老年代,當(dāng)eden區(qū)內(nèi)存不足時(shí)觸發(fā)。

    (3)FullGC:清理整個(gè)堆空間,包括年輕代和老年代。當(dāng)老年代內(nèi)存不足時(shí)觸發(fā)

Java入門教程推薦,GC垃圾回收

 以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“Java入門教程推薦,GC垃圾回收”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。

提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 精品一区国产 | 国产欧美成人 | 久久这里有精品视频 | 人.成午夜 | 亚洲黄色免费在线观看 | 欧美 日本 国产 | 亚洲人成依人成综合网 | 精品欧美一区二区三区在线 | 国产一区二区三区毛片 | 99视频国产在线 | 成人啪啪免费看 | 国产一区二区三区不卡免费观看 | 亚洲精品 国产 日韩 | 亚洲久久在线观看 | 色综合综合色 | 深夜福利在线看 | 色婷婷久久综合中文久久一本 | 九九久久久久久久爱 | 日韩免费看 | 日日摸夜夜摸狠狠摸97 | 久久影院一区二区三区 | 91成人免费在线视频 | 999久久久国产 | 寡妇野外啪啪一区二区 | 深夜免费在线视频 | 日本免费一区二区三区中文 | 天天干夜夜爽 | 精品香蕉99久久久久网站 | 免费污视频在线观看 | 欧美国产成人在线 | 日本中文一二区有码在线观看 | 亚洲免费一区 | jizzz亚洲美女 | 国产在线观看午夜不卡 | 亚洲国产美女 | 欧美 国产 日本 | 性做久久久久久久久男女 | 极品美女一级毛片 | 久久久久99 | 一级国产精品一级国产精品片 | 91蝌蚪在线播放 |