2、垃圾收集器與內存分配策略

1、判斷對象是否已死

1.1 引用計數算法?

java沒有用引用計數算法,難於解決對象間的相互引用問題。

1.2 可達性分析算法

通過GC Roots爲起點,如果沒有達到一個對象,則不可達。

可作爲GC Roots的對象:
1)棧中的引用的對象。
2)方法區中類靜態屬性引用的對象。
3)方法區中常量引用的對象。
4)本地方法棧中JNI引用的對象。

1.3 再談引用

分類:
1)強引用
2)軟引用
3)弱引用
4)虛引用

1.4 回收方法區

回收方法區:廢棄的常量和無用的類

2、垃圾回收算法

2.1 標記-清除算法

兩階段:標記和清除
有效率和碎片問題。

2.2 複製算法

只使用內存的半區,快速和不用考慮碎片問題。
代價是隻能使用內存的一半。
新生代採用這種算法:8:1:1。

2.3 標記-整理算法

老年代採用這種算法。

2.4 分代回收算法

3、各種垃圾收集器

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章