当前位置: 首页 > 面试题库 >

Java垃圾收集有哪些算法,各自的特点?

宋宇
2023-03-14
本文向大家介绍Java垃圾收集有哪些算法,各自的特点? 相关面试题,主要包含被问及Java垃圾收集有哪些算法,各自的特点? 时的应答技巧和注意事项,需要的朋友参考一下

标记-清除算法:标记无用对象,然后进行清除回收。缺点:效率不高,无法清除垃圾碎片。

标记-整理算法:标记无用对象,让所有存活的对象都向一端移动,然后直接清除掉端边界以外的内存。

复制算法:按照容量划分二个大小相等的内存区域,当一块用完的时候将活着的对象复制到另一块上,然后再把已使用的内存空间一次清理掉。缺点:内存使用率不高,只有原来的一半。

分代算法:根据对象存活周期的不同将内存划分为几块,一般是新生代和老年代,新生代基本采用复制算法,老年代采用标记整理算法。

 类似资料:
  • 1、对象是否已死算法 引用计数器算法 可达性分析算法 2、GC算法 (1)标记清除算法 如果对象被标记后进行清除,会带来一个新的问题--内存碎片化。如果下次有比较大的对象实例需要在堆上分配较大的内存空间时,可能会出现无法找到足够的连续内存而不得不再次触发垃圾回收。 (2)复制算法(Java堆中新生代的垃圾回收算法) 先标记待回收内存和不用回收内存; 将不用回收的内存复制到新的内存区域; 就的内存区

  • 问题内容: 有谁知道适当的资源来阅读Java中可用的垃圾收集机制?到目前为止,我发现了几个网站,但是它们没有包含有关何时使用哪种实现以及什么是实现的全面描述。(我指的是Oracle的jdk) 问题答案: 到目前为止,Java Hotspot VM中提供了4种GC算法: 该 系列GC -建议对不具备低暂停时间要求的客户风格的应用程序。 在 并行GC -使用时的吞吐量事项。 在 大多并发GC (也称为

  • 本文向大家介绍Java垃圾收集,包括了Java垃圾收集的使用技巧和注意事项,需要的朋友参考一下 示例 C ++方法-新增和删除 在像C ++这样的语言中,应用程序负责管理动态分配的内存所使用的内存。当使用new运算符在C ++堆中创建对象时,需要相应地使用delete运算符来处置该对象: 如果程序忘记了delete一个对象而只是“忘记”了该对象,则关联的内存将丢失给应用程序。这种情况的术语是内存泄

  • 一、垃圾收集算法 1.标记-清除算法 最基础的收集算法是“标记-清除”(Mark-Sweep)算法,如同它的名字一样,算法分为“标记”和“清除”两个阶段。 ①首先标记出所有需要回收的对象 ②在标记完成后统一回收所有被标记的对象。 不足: 效率问题:标记和清除两个过程的效率都不高 空间问题:标记清除之后产生大量不连续的内存碎片,空间碎片太多可能会导致以后程序运行过程中需要分配较大对象时,无法找到足够

  • 本文向大家介绍js垃圾回收的方式有哪些?相关面试题,主要包含被问及js垃圾回收的方式有哪些?时的应答技巧和注意事项,需要的朋友参考一下 从2012年起,所有现代浏览器都使用了标记-清除垃圾回收算法。所有对JavaScript垃圾回收算法的改进都是基于标记-清除算法的改进,并没有改进标记-清除算法本身和它对“对象是否不再需要”的简化定义。

  • 说一下 jvm 有哪些垃圾回收器?