如何找到要回收的垃圾
- 1、引用计数法
- 2、可达性分析法
三、四种引用状态
-
1、强引用
-
2、软引用
-
3、弱引用
-
4、虚引用
五、垃圾收集算法
- 1、标记-清除(Mark-Sweep)算法
- 2、复制(Copying)算法
- 3、标记-整理(Mark-Compact)算法
- 4、分代收集算法:大批对象死去、少量对象存活的(新生代),使用复制算法,复制成本低;对象存活率高、没有额外空间进行分配担保的(老年代),采用标记-清理算法或者标记-整理算法。
六、垃圾收集器
1、Serial收集器
- 1.单线程工作
- 2.采用复制算法
2、ParNew收集器
- 1.多线程工作 2.采用复制算法
3、CMS收集器
- (1). 初始标记,标记GCRoots能直接关联到的对象,时间很短。
- (2). 并发标记,进行GCRoots Tracing(可达性分析)过程,时间很长。
- (3). 重新标记,修正并发标记期间因用户程序继续运作而导致标记产生变动的那一部分对象的标记记录,时间较长。
- (4). 并发清除,回收内存空间,时间很长。