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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java垃圾回收机制(GC)

發(fā)布時間:2023/12/10 java 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java垃圾回收机制(GC) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

GC原理

對于GC來說,當程序員創(chuàng)建對象時,GC就開始監(jiān)控這個對象的地址、大小以及使用情況。

通常,GC采用有向圖的方式記錄和管理堆(heap)中的所有對象。通過這種方式確定哪些對象是"可達的",哪些對象是"不可達的"。當GC確定一些對象為"不可達"時,GC就有責(zé)任回收這些內(nèi)存空間。

優(yōu)點:

  • 垃圾回收機制有效的防止了內(nèi)存泄露,可以有效的使用可使用的內(nèi)存。
  • 垃圾回收器通常作為一個單獨的低級別的線程運行,在不可預(yù)知的情況下對內(nèi)存堆中已經(jīng)死亡的或很長時間沒有用過的對象進行清除和回收。
  • 程序員不能實時的對某個對象或所有對象調(diào)用垃圾回收器進行垃圾回收。

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

  • 引用計數(shù)器法:為每個對象創(chuàng)建一個引用計數(shù),有對象引用時計數(shù)器 +1,引用被釋放時計數(shù) -1,當計數(shù)器為 0時就可以被回收。它有一個缺點不能解決循環(huán)引用的問題;
  • 可達性分析算法:從 GC Roots 開始向下搜索,搜索所走過的路徑稱為引用鏈。當一個對象到 GC Roots 沒有任何引用鏈相連時,則證明此對象是可以被回收的。

注意:

垃圾回收不會發(fā)生在永久代,如果永久代滿了或者是超過了臨界值,會觸發(fā)完全垃圾回收(Full GC)。如果你仔細查看垃圾收集器的輸出信息,就會發(fā)現(xiàn)永久代也是被回收的。這就是為什么正確的永久代大小對避免Full GC是非常重要的原因。

java引用分析

  • 強引用:發(fā)生 gc 的時候不會被回收。
Object strongReference = new Object();
  • 軟引用:有用但并不是必需的對象,在對于軟引用關(guān)聯(lián)著的對象,只有在內(nèi)存不足的時候JVM才會回收該對象
     
    軟引用可以和一個引用隊列聯(lián)合使用,如果軟引用所引用的對象被JVM回收,這個軟引用就會被加入到與之關(guān)聯(lián)的引用隊列中
SoftReference<String> sr = new SoftReference<String>(new String("hello"));System.out.println(sr.get());
  • 弱引用:非必需對象的,當JVM進行垃圾回收時,無論內(nèi)存是否充足,都會回收被弱引用關(guān)聯(lián)的對象
WeakReference<String> sr = new WeakReference<String>(new String("hello"));System.out.println(sr.get());System.gc(); //通知JVM的gc進行垃圾回收System.out.println(sr.get());
  • 虛引用(幽靈引用/幻影引用):無法通過虛引用獲得對象,用 PhantomReference 實現(xiàn)虛引用,虛引用的用途是在 gc時返回一個通知。
ReferenceQueue<String> queue = new ReferenceQueue<String>();PhantomReference<String> pr = new PhantomReference<String>(new String("hello"), queue);System.out.println(pr.get());

參考資料:
https://blog.csdn.net/jiahao1186/article/details/81591861

總結(jié)

以上是生活随笔為你收集整理的Java垃圾回收机制(GC)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。