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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

JAVA垃圾回收的几点知识

發布時間:2024/9/30 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JAVA垃圾回收的几点知识 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

JAVA垃圾回收的幾點知識

GC Root對象

因為java垃圾回收機制都是采用可達性分析法,所以需要有根對象來作為起始點,下面是可以作為GC Root的對象:

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

2.方法區中的類靜態變量引用的對象

3.常量池中對象。(方法區中)

4.本地方法棧中JNI(即一般說的Native方法)中引用的對象

新生代GC(Minor GC)

采用復制算法,把eden區和survivor 0(s0,from)區的對象復制到S1區(to),然后清空eden區和s0區,調換s0和s1位置,對象年齡+1。如果to區又到達老年代標準的,需要移動到老年代。

老年代GC(Major GC)

采用標記清除算法,首先掃描一遍老年代,標記出存活的對象,然后回收無用對象。老年代裝不下時會OOM。

如何新生代對象被老年代對象引用的時候不被gc

當老年代存活對象多時,每次minor gc查詢老年代所有對象影響gc效率(因為gc stop-the-world),所以在老年代有一個write barrier(寫屏障)來管理的card table(卡表),card table存放了所有老年代對象對新生代對象的引用。
所以每次minor gc通過查詢card table來避免查詢整個老年代,以此來提高gc性能。

總結

以上是生活随笔為你收集整理的JAVA垃圾回收的几点知识的全部內容,希望文章能夠幫你解決所遇到的問題。

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