读书笔记

《深入理解Java虚拟机》第三章:垃圾收集器与内存分配策略

2018-07-05  本文已影响28人  ldlywt

1 检测对象是否存活

1.1 引用计数法

1.2 可达性分析法

Java中作为 GC Roots 的对象包括下面几种:

1.3 引用分类

强度依次减弱:

永远不会被垃圾回收器回收的。

将要发生 OOM 时,GC回收。

被弱引用关联的对象只能生存到下一次 GC 之前。GC 回收时,弱引用会被回收。

在这个对象被 GC 回收时收到一个系统通知。

1.4 对象回收经过2次检测

1.5 方法区回收

2 垃圾回收算法

现在的虚拟机都采用分代收集算法,新生代采用复制算法,老年代采用“标记-清除”或者“标记-整理”算法。

3 内存分配与回收策略

虚拟机给每个对象定义一个对象年龄(Age)计数器,对象经过 Eden 出生并经过第一次 Minor GC 后仍然存活,并且能被 Survivor 容纳,将被移动到 Survivor,并且对象年龄设置为1。

对象在 Survivor 区经过一次 Minor GC,年龄就加1,当年龄达到一定值(默认15)时,移到老年代中。

上一篇下一篇

猜你喜欢

热点阅读