日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

GC回收垃圾对象过程

發布時間:2024/8/26 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 GC回收垃圾对象过程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

GC回收垃圾對象需要完成的三件事

1、哪些內存需要回收?

2、如何判斷對象是否該回收?

3、如何回收垃圾對象?

哪些內存需要回收

  程序計數器、虛擬機棧、本地方法棧三個區域隨線程而生隨線程而滅。虛擬機棧中的棧幀隨著方法的開始和結束對應著入棧和出棧。每一個棧幀需分配內存的大小在類結構確定下來時就已知了。因此這幾個區域的內存分配和回收都具有確定性。方法結束時或是線程結束時內存會隨之回收。

  Java堆和方法區不同,一個接口的實現類所需的內存可能不同,一個方法的不同分支所需內存也可能不同。只有在程序運行期才能知道要創建多少對象,這部分的內存分配和回收具有動態性。

如何判斷對象是否該回收

引用計數算法

  給對象添加一個引用計數器,每當有一個地方引用該對象時計數器加1,有一個地方的引用失效時計數器減1,計數器為0的對象判定為不可用。但是主流的虛擬機沒有選用該算法原因是無法解決對象之間互相循環引用的問題。

可達性分析算法

  該算法思路是通過一系列稱為"GC Roots "的對象作為起始點開始向下搜索,搜索走過的路徑稱為引用鏈(Reference?Chain)。當一個對象到GC?Roots沒有任何引用鏈相連接時則證明此對象不可用。

雖然5、6、7對象互相引用,但是他們到GC?Roots是不可達的,他們將被判定為可回收的對象。

可作為GC?Roots的對象

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

  方法區中靜態屬性引用的對象

  方法區中常量引用的對象

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

對象引用

強引用

  該引用普遍存在如Object?obj = new Object();,只要強引用還存在垃圾收集器將不能回收掉被引用的對象。

軟引用

  該引用描述的是還有用但是非必須的對象。對于軟引用著的對象在系統發生內存溢出異常之前會回收該對象,如果內存不夠才會拋出內存溢出異常。SoftReference類實現軟引用。

弱引用

  該引用描述非必須的對象。對于弱引用著的對象只能存活到下一次垃圾收集器觸發之前,無論內存是否足夠都會回收該對象。WeakReference類實現弱引用。

虛引用

  該引用不會對對象的生存時間產生影響而且我們無法通過該引用獲得對象實例。唯一的作用是當對象被回收時收到一個系統通知。PhantomReference類實現虛引用。?

回收方法區

  方法區的垃圾收集行為比較少,主要是收集廢棄常量和無用的類。

  廢棄常量容易判定,無用的類需滿足三個條件才能判定類是無用的

    該類的所有實例已被回收,堆中沒有類的任何實例

    加載該類的類加載器已經被回收

    該類的java.lang.Class對象沒有在任何地方被引用,在任何地方無法通過反射訪問其方法

  在大量使用反射、動態代理的框架、動態生成JSP及OSGI這類頻繁自定義ClassLoader的場景都需要虛擬機有類卸載功能保證方法區不會溢出

如何回收垃圾對象 (垃圾收集算法)

標記-清除算法

  首先標記要回收的對象,標記完成后統一回收所有被標記的對象。不足是標記和清除效率都不高,標記清除后產生不連續的空間碎片。

復制算法

  將可用內存劃分為大小相等的兩塊,每次只用其中一塊,用完之后將活著的對象復制到另一塊上,然后將用過的那塊一次性清除。當前虛擬機對新生代都使用該算法,將內存分為一個塊較大的Eden和兩塊較小的Survivor空間,每次使用一塊Eden和一塊Survivor,回收時將存活的對象復制到另一塊Survivor中。當Survivor空間不足時依賴其他內存(老年代)進行分配擔保。

標記-整理算法

  標記和標記-清除算法算法一樣,接下來不是直接對可回收的對象進行回收,而是讓所有的存活對象向一段移動,然后清除掉端邊界外的內存。

分代收集算法

  當前虛擬機都采用該算法,將Java堆分為新生代和老年代。新生代中每次GC時都會有大量對象死去,少部分存活選用復制算法。老年代對象存活率較高,沒有額外內存進行分配擔保必須使用標記-清除或標記-整理算法。

?

轉載于:https://www.cnblogs.com/BINGJJFLY/p/7610684.html

總結

以上是生活随笔為你收集整理的GC回收垃圾对象过程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 婷婷久久久久久 | 国产精品成人网站 | 亚洲美女自拍 | av成人精品 | av中文字幕免费在线观看 | 国产日本欧美在线 | 免费观看在线视频 | 免费成人在线网站 | 国产妞干网 | 天天草av| 国产白丝av | 色综合激情 | 国模少妇一区二区三区 | 青青青在线视频免费观看 | 又大又长粗又爽又黄少妇视频 | 爱情岛论坛永久入址测速 | 国内精品福利视频 | av在线毛片| 男女爱爱福利视频 | 亚洲美女色视频 | 日韩精品一区二区三区丰满 | 国产又粗又深又猛又爽又在线观看 | 久久亚洲无码视频 | 少妇在军营h文高辣 | 午夜精品电影 | 日韩成人在线免费观看 | 亚av| 日日躁夜夜躁狠狠久久av | 91香蕉黄| 天天射天天干天天操 | 欲乱美女 | 亚洲视频123| 亚州男人天堂 | 成人片黄网站色大片免费毛片 | 象人高潮调教丨vk | 日韩一区网站 | 国产寡妇亲子伦一区二区三区四区 | 日韩精品手机在线 | avtt2015 | 香蕉国产精品视频 | 97国产精品人人爽人人做 | 亚洲永久免费精品 | 无码国模国产在线观看 | 久久综合免费视频 | 男操女免费网站 | 国产精品网站在线观看 | 欧美极度另类 | 亚洲欧美日韩另类 | 婷婷中文网 | 泷泽萝拉在线播放 | 日韩成人一级 | 无码久久精品国产亚洲av影片 | 男女精品视频 | 日本大胆人体视频 | 欧美日韩高清在线观看 | 国产91在线观看丝袜 | 日本黄色小片 | 无遮挡av| 欧美色亚洲色 | 二级毛片视频 | 一区二区视频免费在线观看 | 蜜芽在线视频 | 黄色三级av | 久久免费视频播放 | 日韩不卡一区 | 毛片精品| 人妻在线一区二区 | 床戏高潮做进去大尺度视频网站 | 美女撒尿无遮挡网站 | 国产日韩一区二区在线观看 | 成人蜜桃av | 精品无码国产一区二区三区av | 欧美视频免费看 | 麻豆国产精品777777在线 | np视频| 色综合999| 奇米久久久 | www.三级| 动漫艳母在线观看 | 亚洲a√ | 国产主播第一页 | 日产精品一区二区 | 欧美亚洲综合在线 | 亚洲在线一区二区 | 啪啪网站免费 | 欧美丰满熟妇bbb久久久 | 91国偷自产一区二区三区观看 | www四虎影院| 91琪琪| 国产一区二区三区精品在线观看 | wwwxxxx国产| 免费av影片| 黄色.com | 精品小视频在线观看 | 不卡网av | 宝贝乖h调教灌尿穿环 | 奇米99| 国产经典久久久 | 91www在线观看 |