垃圾回收机制如何实现,时候什么回收,如何回收?
1、那些内存需要回收:
可以采用引用计数法,有引用就+1,为0的就是没有引用的直接回收,但无法回收两个对象相互引用的情况;这种情况需要使用可达性分析法,当一个对象到GC roots无引用,证明这个对象可以被回收,可以当作gc roots结点的对象有:虚拟机栈、方法区静态属性、方法区静态常量、本地方法栈
2、什么时候回收:
一般有几个阶段,新生代(新对象,快速回收)、老年代(老对象、生命周期长)、持久代(存放静态文件、大文件、基本不回收)
3、如何回收:
对于新生代,对象容易死亡、存活率低,采用复制算法收集,效率高;对于老年代或者持久代,采用标记-清除算法或者标记整理算法
gc收集器
年轻代收集器包括:Serial收集器、ParNew收集器以及Parallel Scavenge收集器
老年代收集包括:Serial Old收集器、Parallel Old收集器以及CMS收集器。
浙公网安备 33010602011771号