0
点赞
收藏
分享

微信扫一扫

Java - 垃圾回收的几种算法简述


文章目录

  • ​​Java - 垃圾回收的几种算法简述​​
  • ​​1、标记-清除算法​​
  • ​​2、复制算法​​
  • ​​3、标记-整理算法​​
  • ​​4、分代收集算法​​

Java - 垃圾回收的几种算法简述

1、标记-清除算法

1、先标记需要回收的对象
2、标记完成后统一回收标记的对象

一方面,标记清除效率不高
另一方面,因为对象的大小的随机性,而产生大量不连续的小的不可用内存空间(内存碎片),
从而导致大对象的创建容易产生内存空间不足而提前触发 GC

2、复制算法

1、把可用内存空间一分为二,每次使用其中一块
2、用完时,复制所有存活的对象到新的内存空间,然后回收旧的内存空间

一方面,内存利用率低下
另一方面,对象少的时候,效率很高,存活对象多时复制的效率就很低了

3、标记-整理算法

1、标记所有需要回收的对象
2、把所有的存活对象向一端移动
3、回收存活对象之外的内存空间

解决了复制算法在多对象环境下的效率问题
解决了内存碎片问题

4、分代收集算法

1、根据对象生存周期的不同,划分内存块
2、对不同的块使用不同的算法

举报

相关推荐

0 条评论