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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

class会不会回收?用不到的class怎么回收_牛X的java程序员必备的GC基础知识, 面试肯定用的到...

發(fā)布時間:2024/7/23 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 class会不会回收?用不到的class怎么回收_牛X的java程序员必备的GC基础知识, 面试肯定用的到... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. GC回收哪些內存區(qū)域呢?

  • 堆內存
    • 對象
    • 數組
  • 方法區(qū)
    • 該類所有的額實例都已經被回收, 也就是java堆中不存在該類的任何實例
    • 加載該類的ClassLoader已經被回收
    • 該類對應的java.lang.Class對象在任何地方沒有被引用, 也無法通過反射訪問該類方法。
    • 垃圾回收性價比比較低, 一般不回收
    • 廢棄常量
    • 無用的類(需要同時滿足以下三個條件)

2. GC是如何判斷垃圾對象的?

1. 引用計數法

給對象的對象頭中添加一個counter引用計數器,當該對象被引用時,counter+1,當不被引用時, counter-1

當對象的counter為0時,則說明該對象不可用,也就是垃圾對象。

缺點:容易引起對象之間的互相循環(huán)引用,造成死鎖狀態(tài)。

2. 可發(fā)性分析算法

通過GC Roots的對象為起點,向下搜索,能到達的對象為不可回收對象,不能到達的對象為需要回收的對象。Java中就是通過可達性分析算法來判定對象是否存活的。

3. 對象引用

無論是通過引用計數算法判斷對象的引用數量,還是通過根搜索算法判斷對象的引用鏈是否可達,判定對象是否存活都與“引用”有關。

在JDK1.2之前,Java中的引用的定義很傳統(tǒng):**如果reference類型的數據中存儲的數值代表的是另外一塊內存的起始地址,就稱這塊內存代表著一個引用。**這種定義很純粹,但是太過狹隘,一個對象在這種定義下只有被引用或者沒有被引用兩種狀態(tài)。我們希望能描述這樣一類對象:當內存空間還足夠時,則能保留在內存之中;如果

在JDK1.2之后,Java對引用的概念進行了擴充,將引用分為強引用(Strong Reference)、軟引用(Soft Reference)、弱引用(Weak Reference)、虛引用(Phantom Reference),這四種引用強度依次逐漸減弱。

  • *強引用*就是指在程序代碼之中普遍存在,類似“Object obj = new Object()”這類的引用,*只要強引用還存在,垃圾收集器永遠不會回收掉被引用的對象。*
  • ****軟引用****用來描述一些還有用,但并非必需的對象。**對于軟引用關聯著的對象,在系統(tǒng)將要發(fā)生內存溢出異常之前,將會把這些對象列進回收范圍之中并進行第二次回收。如果這次回收還是沒有足夠的內存,才會拋出內存溢出異常。**在JDK1.2之后提供了SoftReference類來實現軟引用。
  • 弱引用也是用來描述非必需對象的,但是它的強度比軟引用更弱一些,****被弱引用關聯的對象只能生存到下一次垃圾收集發(fā)生之前。當垃圾收集器工作時,無論當前內存是否足夠,都會回收掉只被弱引用關聯的的對象。****在JDK1.2之后提供了WeakReference類來實現弱引用。
  • 虛引用(幽靈引用、幻影引用),他是最弱的一種引用關系。*一個對象是否有虛引用的存在,完全不會對其生存時間構成影響,也無法通過虛引用來取得一個對象實例。*為一個對象*設置虛引用關聯的唯一目的就是希望能**在這個對象被收集器回收時收到一個系統(tǒng)通知*。在JDK1.2之后,提供了PhantomReference類來實現虛引用。

4. 回收過程

第一次標記:使用可達性分析算法分析之后,判斷對象不可達。

第二次標記:finalize()方法(上訴或者對象自我救贖的唯一方式)。該方法會被垃圾回收器去調 用,并且只會被調用一次。所以可以在finalize方法中,重新建立可達性關聯,那么就完成了自我 救贖。否則被第二次標記。

3. 垃圾對象時怎么被回收的呢?

1. 復制回收算法

使用復制算法的垃圾回收步驟:

  • 當Eden區(qū)發(fā)生垃圾回收之后,會將Eden區(qū)和Survivor其中的一塊區(qū)域中的對象,復制到另一塊 Survivor區(qū)域

  • 然后將將Eden區(qū)和Survivor其中的一塊區(qū)域中的對象完全清理掉。

  • 缺點:內存分配時會浪費新生代的10%的空間。

    2. 標記清除算法

    最基本的算法,主要分為標記和清除2個階段。首先標記出所有需要回收的對象,在標記完成后統(tǒng)一回收掉所有被標記的對象

    缺點:

  • 效率不高。
  • 產生空間碎片。會產生大量不連續(xù)的內存碎片,會導致大對象可能無法分配,提前觸發(fā)GC
  • 3. 標記整理算法

    老年代沒有人擔保,不能用復制回收算法。可以用標記-整理算法,標記過程仍然與“標記-清除”算法一樣,然后讓所有存活的對象都向一端移動,然后直接清理掉端邊界以外的內存

    4. 分代回收算法

    當前商業(yè)虛擬機都是采用這種算法。根據對象的存活周期的不同將內存劃分為幾塊。

    • 新生代,每次垃圾回收都有大量對象失去,選擇復制算法。
    • 老年代,對象存活率高,無人進行分配擔保,就必須采用標記清除或者標記整理算法

    5. 內存分配擔保

    在JVM的內存分配時,也有這樣的內存分配擔保機制。就是當在新生代無法分配內存的時候,把新生代的對象轉移到老生代,然后把新對象放入騰空的新生代。

    4. GC方式有哪些?

    minorGC

    新生代的垃圾回收,很快就回收了,新生代回收的頻率高

    MajorGC

    老年代的垃圾回收 比minorGC慢10倍

    fullGC

    整個JVM的垃圾回收。 整個堆(minorGC和majorGC)和方法區(qū)的垃圾回收。

    • system.gc()

    • 老年代不夠用

    • 方法區(qū)不夠用

    • 當新生代的對象無法被老年代擔保成功時

    總結

    以上是生活随笔為你收集整理的class会不会回收?用不到的class怎么回收_牛X的java程序员必备的GC基础知识, 面试肯定用的到...的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    主站蜘蛛池模板: 人妻一区二区三 | 午夜性激情 | 99热一区| 日本理论片中文字幕 | 伊人天堂在线 | 日本天堂网在线观看 | 在哪里可以看毛片 | 午夜影院在线 | 国产主播福利在线 | 高h调教冰块play男男双性文 | 色综合色综合 | 女性裸体无遮挡胸 | 国产91视频播放 | 少妇无码一区二区三区免费 | 亚洲淫| 国产又大又黄视频 | av在线片 | 日本高清免费aaaaa大片视频 | 国产嘿咻视频 | hd性videos意大利精品 | 午夜激情电影院 | av色吧| 欧美日韩性 | 99免费看 | 国内自拍2020 | 成年视频在线观看 | 精品九九九九九 | 日韩和一区二区 | 天天色视频 | 欧美肉大捧一进一出免费视频 | 不用播放器看av | 动漫精品一区二区三区 | 在线观看色网 | 浓精喷进老师黑色丝袜在线观看 | 极品粉嫩国产18尤物 | 国产亚洲精品久久久久久久久动漫 | 亚洲www.| 欧美91看片特黄aaaa | 逼特逼视频在线观看 | 亚洲射射射 | 色婷网 | 成年人晚上看的视频 | 性欧美18—19sex性高清 | 97视频免费看 | 98堂 最新网名 | 欧美日韩精品三区 | 国产裸体永久免费视频网站 | 亚洲综合福利 | 午夜av剧场 | 色婷综合| 午夜国产一区 | 成年人的免费视频 | 亚洲国产果冻传媒av在线观看 | 国产精品婷婷 | 日本一二三不卡视频 | 91在线精品入口 | 国产九九| 免费在线激情视频 | 性色国产成人久久久精品 | 超碰97干 | 国产av无码专区亚洲av毛网站 | 国产视频精品一区二区三区 | 欧洲一区在线 | 久久久精 | 人操人操| 国产资源网 | 精品福利一区 | 无码国精品一区二区免费蜜桃 | 欧美日韩一区二区三区在线观看 | 日韩国产电影 | 99色网站 | 国产视频一区二区三区在线观看 | 国产精品久久久久久久久久久久久久久久久久 | 欧美天天性影院 | 欧美婷婷精品激情 | 韩日av一区二区 | 超碰日韩在线 | 日本在线小视频 | 狠狠操五月天 | 欧美生活一级片 | 国产sm主人调教女m视频 | 日本一区二区在线视频 | 久久夜色精品国产欧美乱 | 亚洲一区二区观看播放 | 激情小说中文字幕 | 国产丝袜在线播放 | 亚洲人吸女人奶水 | 精品国产高清在线观看 | 中文字幕美女 | 亚洲精品一区二区三区蜜桃久 | 国产精品无码一区二区三区在线看 | 精品无码在线视频 | 国产成人a亚洲精品 | 亚洲成人av片 | 麻豆传媒一区 | 欧美激情一区二区 | 色就是欧美 | 亚洲精品1 | 色久阁|