国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

16、GC如何判斷對象可以被回收

這篇具有很好參考價值的文章主要介紹了16、GC如何判斷對象可以被回收。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

GC如何判斷對象可以被回收

  • 引用計數(shù)法:每個對象有一個引用計數(shù)屬性,新增一個引用時計數(shù)加1,引用釋放時計數(shù)減1,計數(shù)為0時可以回收,
  • 可達性分析法:從 GC Roots 開始向下搜索,搜索所走過的路徑稱為引用鏈。當一個對象到 GC Roots 沒有任何引用鏈相連時,則證明此對象是不可用的,那么虛擬機就判斷是可回收對象。

引用計數(shù)法,可能會出現(xiàn)A引用了 B,B 又引用了A,這時候就算他們都不再使用了,但因為相與引用計數(shù)器=1 永遠無法被回收

GC Roots的對象有:

  • 虛擬機棧(棧幀中的本地變量表)中引用的對象.
  • 方法區(qū)中類靜態(tài)屬性引用的對象
  • 方法區(qū)中常量引用的對象
  • 本地方法棧中NI即一般說的Native方法)引用的對象

可達性算法中的不可達對象并不是立即死亡的,對象擁有一次自我拯救的機會。對象被系統(tǒng)宣告死亡至少要經歷兩次標記過程:第一次是經過可達性分析發(fā)現(xiàn)沒有與GC Roots相連接的引用鏈,第二次是在由虛擬機自動建立的Finalizer隊列中判斷是否需要執(zhí)行finalize()方法。

當對象變成(GC Roots)不可達時,GC會判斷該對象是否覆蓋了finalize方法,若未覆蓋,則直接將其回收。否則,若對象未執(zhí)行過finalize方法,將其放入F-Queue隊列,由一低優(yōu)先級線程執(zhí)行該隊列中對象的finalize方法。執(zhí)行finalize方法完畢后,GC會再次判斷該對象是否可達,若不可達,則進行回收,否則,對象”復活”

每個對象只能觸發(fā)一次finalize()方法
由于finalize()方法運行代價高昂,不確定性大,無法保證各個對象的調用順序,不推薦大家使用,建議遺忘它。
文章來源地址http://www.zghlxwxcb.cn/news/detail-566165.html

到了這里,關于16、GC如何判斷對象可以被回收的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 【JVM】垃圾回收 GC

    【JVM】垃圾回收 GC

    垃圾回收(Garbage Collection,GC)是由 Java 虛擬機(JVM)垃圾回收器提供的一種對內存回收的一種機制,它一般會在內存空閑或者內存占用過高的時候對那些沒有任何引用的對象不定時地進行回收。以避免內存溢出和崩潰的問題。JVM的垃圾回收算法包括引用類型、引用計數(shù)器法

    2024年01月16日
    瀏覽(19)
  • GC垃圾回收的算法

    GC(垃圾回收)的算法有多種,每種都有其特點和適用場景。以下是一些常見的GC算法,并舉例進行說明: 引用計數(shù)算法 : 原理:為每個對象維護一個引用計數(shù)器,每當有一個地方引用這個對象時,計數(shù)器加1;當引用被刪除時,計數(shù)器減1。當計數(shù)器的值為0時,表示該對象不

    2024年03月23日
    瀏覽(28)
  • java---垃圾回收算法(GC)

    java---垃圾回收算法(GC)

    目錄 一、如何判斷一個對象是否存活 1.引用計數(shù)法 2.可達性分析法 二、垃圾回收算法 1.標記清除法 2.復制算法 3.標記整理法 4.分代算法 具體流程 注意事項 空間分配擔保原則 總結 Java 堆中存放著幾乎所有的對象實例,垃圾回收器在對堆進行垃圾回收前,首先要判斷這些對象

    2024年02月05日
    瀏覽(16)
  • GC回收器演進之路

    GC回收器演進之路

    目錄 未來演進方向 歷經之路 引用計數(shù)法 標記清除法 復制法 標記整理 分代式 三色標記法的誕生 三色標記法的基本概念 產生的問題 問題 1:浮動垃圾 問題 2:對象消失 遍歷對象圖不需要 STW 的解決方案 屏障機制 插入屏障(Dijkstra)- 灰色賦值器 刪除屏障 (Yuasa)- 黑色賦值

    2024年02月13日
    瀏覽(16)
  • JVM----GC(垃圾回收)詳解

    JVM----GC(垃圾回收)詳解

    Automatic Garbage Collection (自動垃圾回收)是JVM的一個特性,JVM會啟動相關的線程,該線程會輪訓檢查heap memeory,并確定哪些是未被引用的(unreferenced),即未被使用的;哪些是被引用的(referenced),即正在使用的。 在C/C++語言中,對象內存的分配與回收,是手動進行分配與回收

    2024年02月09日
    瀏覽(20)
  • JVM:垃圾回收機制(GC)

    JVM:垃圾回收機制(GC)

    引用計數(shù)算法: ? ? ? ? 在對象中添加一個引用計數(shù)器,當每有一個地方引用它時,計數(shù)器值加一。當引用失效時,計數(shù)器值就減一。當一個對象的計數(shù)器為零時,表示該對象沒有被任何其他對象引用,因此可以被釋放。 優(yōu)點 :是可以及時回收垃圾對象,避免內存泄漏,且

    2024年01月19日
    瀏覽(26)
  • 02JVM_垃圾回收GC

    02JVM_垃圾回收GC

    在 堆 里面存放著java的所有對象實例,當對象為“死去”,也就是不再使用的對象,就會進行垃圾回收GC 1.1引用計數(shù)器 介紹 在對象中添加一個引用計數(shù)器,當一個對象被其他變量引用時這個對象的引用計數(shù)器加1。當某個變量不再引用這個對象時引用計數(shù)器減1。當這個引用計

    2024年02月09日
    瀏覽(25)
  • 【JVM】垃圾回收機制詳解(GC)

    【JVM】垃圾回收機制詳解(GC)

    可以看jvm詳解之后,再來理解這篇文章更好 堆和方法區(qū),主要發(fā)生在堆中,然后主要發(fā)生在堆的伊甸園區(qū)(Eden)。 Java中的垃圾回收是根據 可達性分析算法(Reachability Analysis) 和 引用計數(shù)算法 來判斷對象是否存活的。 JDK.1.2 之后,Java 對引用的概念進行了擴充,將引用分為了:

    2024年02月13日
    瀏覽(16)
  • 深入學習JVM —— GC垃圾回收機制

    深入學習JVM —— GC垃圾回收機制

    ????????前面荔枝已經梳理了有關JVM的體系結構和類加載機制,也詳細地介紹了JVM在類加載時的雙親委派模型,而在這篇文章中荔枝將會比較詳細地梳理有關JVM學習的另一大重點——GC垃圾回收機制的相關知識,重點了解的比如對象可達性的判斷、四種回收算法、分代回收

    2024年02月14日
    瀏覽(21)
  • .NET CLR之垃圾回收(GC)

    .NET CLR之垃圾回收(GC)

    公共語言運行庫 (common language runtime,CLR) 是托管代碼執(zhí)行核心中的引擎。 運行庫為托管代碼提供各種服務,如跨語言集成、代碼訪問安全性、對象生存期管理、調試和分析支持。 它是整個.NET框架的核心,它為.NET應用程序提供了一個托管的代碼執(zhí)行環(huán)境。 它實際上是駐留在內

    2024年02月11日
    瀏覽(44)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包