第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

GC 如何將不可到達(dá)的對象標(biāo)記為已經(jīng)不可到達(dá)

GC 如何將不可到達(dá)的對象標(biāo)記為已經(jīng)不可到達(dá)

慕姐4208626 2023-09-27 16:06:45
我相信這是一個簡單的問題,但我對我的理解有一點(diǎn)疑問。我擔(dān)心的是,每當(dāng) GC 啟動垃圾收集時,它主要涉及三個步驟:標(biāo)記掃壓實(shí)GC標(biāo)記階段時,從GC根開始遍歷所有對象,對不可達(dá)對象進(jìn)行標(biāo)記。我已經(jīng)讀過很多塊了。我的疑問是,當(dāng)從 GC 根遍歷時,GC 只會訪問活動對象(在樹中被引用)。正確的!那么肯定沒有辦法到達(dá)不可到達(dá)的對象。那么 GC 如何標(biāo)記不可到達(dá)的對象,因?yàn)?GC 無法到達(dá)它們。請幫助我理解這個概念。謝謝!
查看完整描述

3 回答

?
偶然的你

TA貢獻(xiàn)1841條經(jīng)驗(yàn) 獲得超3個贊

GC 如何將不可到達(dá)的對象標(biāo)記為已經(jīng)不可到達(dá)

不可達(dá)的對象不會被標(biāo)記。

這個想法是,標(biāo)記過程訪問所有可到達(dá)的對象,并在它找到的每個對象上設(shè)置標(biāo)記。然后掃描階段會清除未標(biāo)記的對象。

那么GC是如何找到那些沒有被標(biāo)記的對象的呢?

好吧,所有對象都有一個標(biāo)頭塊,其中包括標(biāo)記位和其他內(nèi)容以及對象的大小。對象在內(nèi)存中連續(xù)存儲。因此,如果您擁有第一個對象的地址,則只需將對象大小和標(biāo)頭大小添加到該地址......并且您就擁有了下一個對象的地址。

這就是掃地機(jī)的作用。它掃描所有對象,檢查它們是否被標(biāo)記。然后刪除未標(biāo)記的對象。

(我簡化了很多......)


查看完整回答
反對 回復(fù) 2023-09-27
?
慕標(biāo)5832272

TA貢獻(xiàn)1966條經(jīng)驗(yàn) 獲得超4個贊

雖然標(biāo)記階段是從根開始的圖形遍歷,但掃描階段收集器可以對內(nèi)存區(qū)域執(zhí)行(可并行的)線性掃描,根據(jù)已知布局(大多數(shù) JVM 實(shí)現(xiàn)中的標(biāo)頭、某些其他實(shí)現(xiàn)中的 GC 槽的固定大小)識別所有對象。運(yùn)行時間)



查看完整回答
反對 回復(fù) 2023-09-27
?
慕哥9229398

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超6個贊

  • 標(biāo)記 - 標(biāo)記從 GC 根開始的活動對象

  • Sweep - 遍歷堆以識別未標(biāo)記的對象

  • 緊湊 - 移動堆中的對象以使可用內(nèi)存連續(xù)(碎片對策)


查看完整回答
反對 回復(fù) 2023-09-27
  • 3 回答
  • 0 關(guān)注
  • 141 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號