`

GC 回收策略

阅读更多

垃圾回收:由JVM自动释放不再被程序所引用的对象,按照特定的算法来实现资源回收。

如何判断一个对象是否生存或者消亡?

首先如果在进行可达性分析之后,那些没有与GC Roots相关联的引用链将会第一次被标记并且进行一次筛选,筛选的条件是是否有必要执行finalize()方法,当对象没有覆盖finalize()或者已经被虚拟机调用过,虚拟机将这两种情况都被视为没有必要执行。

如果这个对象被判定有必要执行finalize方法,那么这个对象将会放置到到一个叫做F-Queue的队列中,并在稍后的由一个虚拟机自动建立的,低优先级的Finalizer的线程去执行。

稍后GC还会对F-queue中的对象进行第二次第二次小规模标记,如果在第一次的时候没有被finalize执行,在那个时候与引用链上任何一对象建立关系,都逃脱了死亡命运,否则第二次就可能真的被回收了。

哪些可以作为GC Roots呢?

1 方法栈中的变量

2 类变量引用的对象

3 常量引用的对象

4 本地方法栈所引用的对象

垃圾手机算法:

标记清除算法:首先标记所有需要回收的对象,然后在标记完成后统一回收所有被标记的对象。

 

复制算法:他将内存容量分为大小相等的两个快,每一次使用其中的一块,当一块内存用完,将还存活的对象复制到另一块上,然后再把已使用的空间一次性清理掉。

这样可以不必考虑碎片等问题。

 

标记整理算法:过程与标记清除差不多,但是后续步骤不是直接对可回收的对象进行整理,而是让所有存货的对象都向一端移动,然后直接就、清理掉端边界以外的内存。

分享到:
评论

相关推荐

    gc回收机制

    GC回收机制是Java虚拟机(JVM)的核心组成部分,它极大地简化了开发过程,但也带来了一些性能上的挑战。 GC的工作原理主要分为以下几个步骤: 1. **对象分配**:当程序创建一个新的对象时,JVM会在堆内存中为这个...

    java垃圾回收(gc)机制详解

    Java垃圾回收(GC)机制是Java编程语言中的一个重要特性,它自动管理程序的内存空间,负责识别并清除不再使用的对象,以防止内存泄漏。本文将深入探讨Java GC的工作原理、类型、过程以及优化策略。 一、Java垃圾...

    Java_GC垃圾回收调优指南

    不同的垃圾回收策略适用于不同场景下的应用程序,因此了解这些策略的特点对于优化应用程序至关重要。 #### 一般调优准则 1. **熟悉默认设置**:Sun HotSpot JVM 集成了智能调优功能,称为“Ergonomics”。对于至少...

    大厂架构师-日均百万订单量的JVM优化与高级GC调优策略实战(5.8G)

    大厂架构师-日均百万订单量的JVM优化与高级GC调优策略实战(5.8G) 〖课程介绍〗: 来自顶尖大厂的架构师级JVM优化与GC调优策略实战课程,是具备有尖端技术的优化课程。在课程内容上几乎不用过多的介绍,单是查阅目录就...

    09.内存分配与回收策略1

    Java内存分配与回收策略 Java中的内存自动管理主要分为两种:内存的分配和内存的回收。在Java中,对象的内存分配主要是在堆上分配, Objects are primarily allocated in the Eden zone of the new generation. ...

    JVM常用的GC策略介绍

    ### JVM常用的GC策略详解 #### 一、引言 在Java虚拟机(JVM)中,垃圾收集(GC)是一项至关重要的任务,它自动管理程序运行时不再使用的对象内存,从而避免了手动管理内存可能导致的内存泄漏等问题。本文将详细介绍几...

    JVM垃圾回收机制与GC性能调优

    调整合适的堆大小和内存分配策略可以有效减少垃圾回收的频率和时间,提高系统响应速度。此外,监控GC日志,分析GC行为,以及使用适当的GC算法(如CMS、G1或ZGC)也是优化过程中的关键步骤。通过这些实践,开发者能够...

    基于动态优先级的实时Java垃圾回收策略.pdf

    本文提出了一种基于动态优先级的实时Java垃圾回收策略,旨在解决通用平台下Java虚拟机垃圾回收器(GC)的不定期启动问题。该策略将优先级分为两级:关键线程和非关键线程,并计算出垃圾回收的时机,即计算出垃圾回收...

    C#垃圾回收机制GC

    5. 了解GC的工作模式,如Generational GC,它针对不同年龄的对象采取不同的回收策略。 6. 使用WeakReference避免阻止对象回收。 7. 注意内存压力,适时调整应用程序的行为以配合GC。 8. 了解GC的触发条件,如内存...

    JVM性能调优-JVM内存整理及GC回收.pdf

    因此,分代处理垃圾的策略是根据对象的存活时间将对象分配到不同的代中,这样可以根据对象的特性采用合适的回收策略,从而提高垃圾回收的效率和效果。在分代处理垃圾的策略中,主要分为年青代和年老代,年青代中的...

    JVM性能调优-JVM内存整理及GC回收.docx

    JVM性能调优-JVM内存整理及GC回收 JVM(Java Virtual Machine)性能调优是 Java 开发者需要掌握的重要技能之一。 JVM 的性能调优主要涉及到 JVM 内存整理、垃圾回收(GC)机制等方面。 Java 中的值传递和引用传递...

    迷你垃圾回收器mini gc for c

    总的来说,迷你垃圾回收器是一个旨在简化C语言内存管理的工具,通过保守的垃圾回收策略,帮助开发者避免手动管理内存可能导致的问题。这个项目提供了一整套实现和测试,方便用户理解和应用。通过深入研究源代码和...

    Linux平台上的WAS垃圾回收策略分析.pdf

    【Linux平台上的WAS垃圾回收策略分析】 IBM WebSphere Application Server (WAS) 是一个流行的Java应用程序服务器,广泛用于企业级的Java Enterprise Edition (Java EE) 应用部署。在Linux平台上,WAS使用Java...

    Visual GC(监控垃圾回收器)

    在使用VisualVM时,应结合实际应用场景选择合适的GC策略和参数调整。例如,对于短生命周期的对象,可以选择ParNew或G1垃圾回收器;对于需要低延迟的应用,可能需要考虑使用ZGC或Shenandoah等新一代的低暂停时间GC。 ...

    笔记,2、内存分配与回收策略~深入理解垃圾回收器1

    内存分配与回收是编程语言...总的来说,理解Java的内存分配与回收策略对于优化程序性能和避免内存问题至关重要。开发者应关注GC的工作原理,合理设置内存参数,并善用不同类型的引用,以实现更高效、更稳定的程序运行。

    JVM 垃圾回收(GC)

    Java虚拟机(JVM)的垃圾回收(Garbage Collection, GC)是Java编程语言中一个重要的特性,它自动管理程序的内存,确保无用的对象被有效...在实际开发中,适时调整垃圾回收策略,可以有效避免内存溢出,提升应用性能。

Global site tag (gtag.js) - Google Analytics