1. 基础知识
几种引用类型:
引用类型 | 功能特点 |
---|---|
强引用(Strong Reference) | 被强引用关联的对象永远不会被垃圾收集器回收掉 |
软引用(Soft Reference) | 软引用关联的对象,只有当系统将要发生内存溢出时,才会去回收软引用的对象 |
弱引用(Weak Reference) | 只被弱引用关联的对象,只要发生垃圾收集事件,就会被回收 |
虚引用(Phantom Reference) | 被虚引用关联的对象的唯一作用是能在这个对象被回收时收到一个系统通知 |
几种引用类型:
引用类型 | 功能特点 |
---|---|
强引用(Strong Reference) | 被强引用关联的对象永远不会被垃圾收集器回收掉 |
软引用(Soft Reference) | 软引用关联的对象,只有当系统将要发生内存溢出时,才会去回收软引用的对象 |
弱引用(Weak Reference) | 只被弱引用关联的对象,只要发生垃圾收集事件,就会被回收 |
虚引用(Phantom Reference) | 被虚引用关联的对象的唯一作用是能在这个对象被回收时收到一个系统通知 |
本篇文章首先对 JAVA Art 中的 GC 进行一个全局性的概览,后续如果要研究技术细节等,再另起新的文章进行重点研究。
提示
本篇主要研究 ConcurrentCopying GC 的技术细节。
在 art 虚拟机中,FW Ptr 是一个很重要的概念,通常在 "mark and sweep" phase 中使用。
整个过程的描述大致为,gc collector 扫描存活对象和其引用的对象,确定这些对象应该继续存活还是被回收,在 mark phase 完成以后,gc collector 开始 "sweep" phase, 在这个 phase 中,会回收那些堆中没有被 "mark" 的对象(这些对象不会再被使用了);