垃圾回收机制
垃圾回收机制指的是自动释放失活对象所占内存空间实现内存管理的机制
内存管理依赖于堆内存, 堆内存分为两个区域:
- 新生代区域:
- 存放生命周期较短的对象,
- 空间较小
- 垃圾回收频率和效率较高
- 老生代区域:
- 存放生命周期较长或经过多次回收后依然存活的对象
- 空间较大
- 垃圾回收速度较慢
采用两种算法进行管理:
- 复制算法: 用于管理新生代区域的对象, 将区域进一步分为两个空间, From 空间和 To 空间, 新对象首先分配到 From 空间, From 空间占满后, 开始垃圾回收, 活动对象复制到 To 空间, From 空间的失活对象被清除, 最后 To 空间变成新的 From 空间
- 标记清除算法:
- 遍历所有对象, 标记活动对象
- 清除未标记对象, 释放占用的内存空间