当前位置:   article > 正文

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

java垃圾回收的几种算法

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


1、标记-清除算法
1、先标记需要回收的对象
2、标记完成后统一回收标记的对象

一方面,标记清除效率不高
另一方面,因为对象的大小的随机性,而产生大量不连续的小的不可用内存空间(内存碎片),
从而导致大对象的创建容易产生内存空间不足而提前触发 GC
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
2、复制算法
1、把可用内存空间一分为二,每次使用其中一块
2、用完时,复制所有存活的对象到新的内存空间,然后回收旧的内存空间

一方面,内存利用率低下
另一方面,对象少的时候,效率很高,存活对象多时复制的效率就很低了
  • 1
  • 2
  • 3
  • 4
  • 5
3、标记-整理算法
1、标记所有需要回收的对象
2、把所有的存活对象向一端移动
3、回收存活对象之外的内存空间

解决了复制算法在多对象环境下的效率问题
解决了内存碎片问题
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
4、分代收集算法
1、根据对象生存周期的不同,划分内存块
2、对不同的块使用不同的算法
  • 1
  • 2
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/397647
推荐阅读
相关标签
  

闽ICP备14008679号