,如果回收后内存还不足才会跑出内存溢出异常
弱引用
Weak Reference
通过WeakReference类实现弱引用,弱引用关联的对象只能生存到下一次垃圾收集发生时;
虚引用
Phantom Reference...复制的开销会很大优点:
- 实现简单,内存连续,对象分配高效标记整理: 存活对象往内存一端移动, 关注吞吐量
适合有大量存活的对象,比如老年代
- G1的老年代就是基于这种算法的缺点:
- 整理时对象可能需要移动...出品(RedHat出品)导致一直被排挤的垃圾收集器; 在OpenJDK中存在但是没有存在于OracleJDK ;
目标: 低停顿 ; 目前RedHat积极扩展其使用范围,将其能够在JDK11甚至JDK8...Region
并发回收:
G1在回收阶段虽然可以设置期望停顿时间进行控制,但是依旧是STW的
将回收集中存活的对象复制一份到其他未被使用的Region之中,与用户线程并发时通过转发指针来解决,时间长短取决于回收集的大小初始引用更新...并发标记; 更新染色指针
2. 并发预备重分配: 扫描整个堆得到本次收集过程中要清理的region(重分配集)
3.