Java - 垃圾回收的几种算法简述
Posted 简简单单OnlineZuozuo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java - 垃圾回收的几种算法简述相关的知识,希望对你有一定的参考价值。
Java - 垃圾回收的几种算法简述
1、标记-清除算法
1、先标记需要回收的对象
2、标记完成后统一回收标记的对象
一方面,标记清除效率不高
另一方面,因为对象的大小的随机性,而产生大量不连续的小的不可用内存空间(内存碎片),
从而导致大对象的创建容易产生内存空间不足而提前触发 GC
2、复制算法
1、把可用内存空间一分为二,每次使用其中一块
2、用完时,复制所有存活的对象到新的内存空间,然后回收旧的内存空间
一方面,内存利用率低下
另一方面,对象少的时候,效率很高,存活对象多时复制的效率就很低了
3、标记-整理算法
1、标记所有需要回收的对象
2、把所有的存活对象向一端移动
3、回收存活对象之外的内存空间
解决了复制算法在多对象环境下的效率问题
解决了内存碎片问题
4、分代收集算法
1、根据对象生存周期的不同,划分内存块
2、对不同的块使用不同的算法
以上是关于Java - 垃圾回收的几种算法简述的主要内容,如果未能解决你的问题,请参考以下文章