日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
垃圾收集機制是什么意思-創(chuàng)新互聯(lián)

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)垃圾收集機制是什么意思,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

慶云ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)建站的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!

在上一篇中我們說過,自動內(nèi)存管理分為兩部分:給對象分配內(nèi)存和回收分配給對象的內(nèi)存。這篇我們說說后者,即回收分配給對象的內(nèi)存?;厥諆?nèi)存要用到垃圾收集機制,英文名兒是GC(Garbage Collection)。

在本部分我們要解決如下幾個問題:

1、哪些內(nèi)存需要回收?

2、什么時候回收?

3、如何回收?

哪些內(nèi)存需要回收?

堆和方法區(qū)的內(nèi)存需要回收,其余的不需要回收。
因為只有堆和方法區(qū)是線程共享的,其余的是與線程“同生共死”的,線程結(jié)束,內(nèi)存自然就跟著回收了,所以不用管它們。

什么時候回收?

(1)在堆里面:

當(dāng)對象“死了”的時候就要對其進行內(nèi)存回收了。啥叫對象死了?就是沒有地方引用它了,它無用了。那怎么判斷它是否死了呢?

有兩種方法:

引用計數(shù)算法

給對象添加一個引用計數(shù)器,每當(dāng)有一個地方引用它時,計數(shù)器的值就+1,當(dāng)引用失效時,計數(shù)器的值就-1,當(dāng)計數(shù)器的值為0時,代表此對象已不被引用,也就是“可以死了”。

但這有一個弊端,就是循環(huán)引用的問題。就像下圖,堆里的兩個對象即使無用了也沒辦法對其進行回收,因為它們互相引用著,計數(shù)器的值至少為1。

垃圾收集機制是什么意思

可達性分析

所有生成的對象都是一個稱為“GC Roots”的根的子樹。從GC Roots開始向下搜索,搜索所經(jīng)過的路徑稱為引用鏈。當(dāng)一個對象到GC Roots沒有任何引用鏈可以到達時,就稱這個對象是不可達的,也就是可以被GC回收了。這個是Java中采用較多的方式。

就像下圖中的堆中未被引用的對象,就可以對其進行回收。

垃圾收集機制是什么意思

怎么判斷一個對象是否還存在著引用?java中的引用分為4種:

強引用:Object o=new Object(),只要強引用存在,GC永遠不會回收掉被引用的對象。

軟引用:描述一些還有用但非必需的對象。當(dāng)系統(tǒng)即將發(fā)生內(nèi)存溢出了,就會對其進行回收。

弱引用:只要進行GC,就會對其進行回收。

虛引用:這是最弱的一種引用關(guān)系,無法通過虛引用來取得一個對象實例。它的作用是:能在這個對象被收集器回收時收到一個系統(tǒng)通知。

(2)在方法區(qū)里面:

我們知道,方法區(qū)里存儲的是已被虛擬機加載的類信息,常量,靜態(tài)變量,即時編譯器編譯后的代碼等數(shù)據(jù)。所以我們在方法區(qū)里面進行垃圾回收,回收的是一些廢棄的常量和無用的類。

怎么判斷一個常量是否被廢棄了?

看引用計數(shù)就可以,如果沒有對象引用該常量,則說明此常量被廢棄了,也就可以回收了。

怎么判斷一個類是無用的類?

有3種情況:

a、該類所有的實例都已經(jīng)被回收。

b、加載該類的ClassLoader已經(jīng)被回收。

c、該類對應(yīng)的java.lang.Class對象沒有任何地方被引用,無法在任何地方通過反射訪問該類的方法。

如何回收?

有4種算法作為理論:
? 標(biāo)記-清除算法
? 復(fù)制算法
? 標(biāo)記-整理算法
? 分代收集算法

有5種收集器作為實現(xiàn):

垃圾收集機制是什么意思

后記

內(nèi)存溢出:系統(tǒng)無法再分配出你需要的空間。比如在堆中無法再給新生的對象分配內(nèi)存了,在棧里棧滿了無法再讓新棧幀進棧了。

內(nèi)存泄漏:內(nèi)存被對象占用著不還,就叫內(nèi)存泄露。

上述就是小編為大家分享的垃圾收集機制是什么意思了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計公司行業(yè)資訊頻道。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


當(dāng)前題目:垃圾收集機制是什么意思-創(chuàng)新互聯(lián)
網(wǎng)站地址:http://www.dlmjj.cn/article/cchcsg.html