GV算法及分区

229 阅读1分钟

GV的算法有标记-清除算法、标记-整理算法、复制算法、分代算法; 对于那些对象可以回收,有引用计数法和可达性分析算法 对于引用计数法存在的弊端是:对于互相引用的两个对象,不能进行回收

标记-清除算法---对于可回收的对象及位置清除 标记-整理算法---对于可回收的对象回收后,且整理出连续的可用空间 复制算法---对于可用对象,复制到另外一块区域,并清空内存 分代算法---对于新生代,使用标记-清除算法或者标记-整理算法,对于老年代使用复制算法;

内存区域分为:程序计数器、虚拟机栈、本地方法栈、堆、方法区 其中回收的地方是:虚拟机栈、堆、方法区

新生代用于对象回收快、多次无法回收的对象转到老年代;再细分的话,新生代再细分,分为:Eden区、from survivor、to survivor区,其中from 和to 会交互角色; 分代的主要原因是优化GC性能。