溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么在java中使用gc判定可回收對象

發(fā)布時間:2021-04-22 15:52:06 來源:億速云 閱讀:116 作者:Leah 欄目:編程語言

怎么在java中使用gc判定可回收對象?相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

Java可以用來干什么

Java主要應(yīng)用于:1. web開發(fā);2. Android開發(fā);3. 客戶端開發(fā);4. 網(wǎng)頁開發(fā);5. 企業(yè)級應(yīng)用開發(fā);6. Java大數(shù)據(jù)開發(fā);7.游戲開發(fā)等。

1、引用計數(shù)算法

在對象中添加引用計數(shù)器,在某個地方引用時,計數(shù)器值增加1,引用失效時,計數(shù)器值減少1,無論何時計數(shù)器為0的對象都不能再使用。

優(yōu)點(diǎn)是簡單,高效,現(xiàn)在的objective-c用的就是這種算法。

缺點(diǎn)是很難處理循環(huán)引用,比如圖中相互引用的兩個對象則無法釋放。

2、可達(dá)性分析算法

Java采用了可達(dá)性分析算法,以解決循環(huán)引用問題。

以GCRoots(每一種具體實(shí)現(xiàn)對GCRoots都有不同的定義)為起點(diǎn),向下搜索引用對象,就能形成一棵引用樹,樹的節(jié)點(diǎn)被視為可達(dá)對象,反之則被視為不可達(dá)。

Java語言定義了如下GC Roots對象:

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

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

方法區(qū)中常量引用的對象。

本地方法棧中JNI引用的對象。

看完上述內(nèi)容,你們掌握怎么在java中使用gc判定可回收對象的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI