java垃圾回收机制
1、发现无用对象
引用计数
被应用时,计数器++,通过计数器判断是否被引用(循环引用)
把引用关系作为一张图,搜索根。(建图或者建树)
2、回收无用对象
通用的垃圾分代回收机制
将对象分为年轻代,年老代,持久代
jvm划分为将堆划分为:
Eden :新建对象先放至eden,满了就触发垃圾回收(minor gc 删除无用对象,将有用对象复制到survivor1区或survivor2区,清空eden)
Survivor :当对象在经历了多次(默认15次)在s1和s2中轮转,就被放至 old区
Tenured :old区满时,启动(major gc 清理老年代) 全满时启动full-gc