java中的GC
1、GC发生在JVM中的堆区
2、GC是很么?
1、次数上频繁收集Young区 Minor GC
2、次数上较少收集Old区 Full GC
3、基本不动的Perm区
3、GC的算法
1、引用计数法:(已被淘汰)
每次有对象被引用了,就不进行垃圾回收。
缺点:每次对对象赋值时均要引用技术,且计数器本身也是一种消耗。比较难处理的循环
2、复制算法:
年轻代使用的Minor GC,这种GC算法采用的是复制算法。
优点:没有内存碎片,处理快
缺点:从一个内存区域,复制到另一个内存区域,消耗内存,很占空间
3、标记清除
老年代一般是由标记清除或者是标记整理的混合实现
优点:先进行标记再进行清除,清除没有标记的。在一片内存处理,不需要额外的空间
缺点:标记一次,清除一次,速度慢。清除后,造成内存碎片
4、标记压缩
老年代一般是由标记清除或者是标记清除与标记整理的混合实现
优点:先进行标记再进行压缩,把不连续的空间连接起来
缺点:
5、标记清除压缩
将标记清除标记压缩整合使用
优点:减少了移动对象成本
缺点: