关于java垃圾回收的小结

这篇具有很好参考价值的文章主要介绍了关于java垃圾回收的小结。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、为什么要有垃圾回收

我们每次创建对象都需要在栈上开辟空间,堆上使用内存,如果我们只是开辟了这个空间,而不去释放他,那么再大的内存和空间也会有满的一天,所以我们在Java中引入了GC(垃圾回收机制)

二、GC如何确认是否是垃圾

可达性分析:以代码中的一些变量为起点,看哪些对象能被访问到,标记为可达,剩下的不可达的也就是垃圾了。

这里称为起点的变量(GCRoot),可以为栈内的局部变量,常量池中的对象,方法区中的静态引用类型的成员。

大家可以将他想成一个二叉树

关于java垃圾回收的小结,java,开发语言

不可达,就是把他们中间相互连接的这个线给抹除,无法访问

然后GC就认为2是垃圾,就会去回收他

三:GC回收的方法

Java中采用分代回收的方法

关于java垃圾回收的小结,java,开发语言

 新开辟的进程会被放在伊甸区,GC会频繁对其进行扫描

每次扫描,该进程的年龄就会增加一岁

如果到了一定的年龄,该进程任然在运行,不是垃圾,那么就会被放到扫描频率低一点的幸存区

如果在幸存区进行反复扫描依然存活

最后就会被丢到扫描频率最低的老年区

PS:一个很大的程序会被直接丢到老年区文章来源地址https://www.toymoban.com/news/detail-563235.html

到了这里,关于关于java垃圾回收的小结的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • java垃圾回收机制

    Java 的自动内存管理主要是针对对象内存的回收和对象内存的分配。同时,Java 自动内存管理最核心的功能是  堆  内存中对象的分配与回收。Java 堆是垃圾收集器管理的主要区域,因此也被称作  GC 堆。 Eden 区、两个 Survivor 区 S0 和 S1 都属于新生代,中间一层属于老年代,最

    2024年02月04日
    浏览(49)
  • java垃圾回收机制(面试)

    Java 的自动内存管理主要是针对对象内存的回收和对象内存的分配。同时,Java 自动内存管理最核心的功能是 堆 内存中对象的分配与回收。Java 堆是垃圾收集器管理的主要区域,因此也被称作 GC 堆。 Eden 区、两个 Survivor 区 S0 和 S1 都属于新生代,中间一层属于老年代,最下面

    2023年04月26日
    浏览(45)
  • 【Java JVM】垃圾回收

    当前大部分的垃圾收集器都遵循着 “分代收集” (Generational Collection) 的理论进行设计的, 建立在 2 个分代假设之上 弱分代假说 (Weak Generational Hypothesis): 绝大多数对象都是朝生夕灭的 强分代假说 (Strong Generational Hypothesis): 熬过越多次垃圾收集过程的对象就越难以消亡 根据这

    2024年03月14日
    浏览(46)
  • java-垃圾回收与算法

    1. 引用计数法   在 Java 中,引用和对象是有关联的。如果要操作对象则必须用引用进行。因此,很显然一个简单的办法是通过引用计数来判断一个对象是否可以回收。简单说,即一个对象如果没有任何与之关联的引用,即他们的引用计数都不为 0,则说明对象不太可能再被用

    2024年02月12日
    浏览(36)
  • 2023-05-26:golang关于垃圾回收和析构函数的选择题,多数人会选错。

    2023-05-26:golang关于垃圾回收和析构的选择题,代码如下: 代码的运行结果是什么?并说明原因。注意析构是无序的。 A. 结束 B. a被回收--b被回收--结束 C. b被回收--a被回收--结束 D. B和C都有可能 golang的垃圾回收算法跟java一样,都是根可达算法。代码中main0函数里a和b是互相引

    2024年02月06日
    浏览(47)
  • Java垃圾回收机制深入理解

    Java垃圾回收机制是Java虚拟机(JVM)的核心组件之一,对于内存管理起到至关重要的作用。它能自动追踪并管理应用程序中创建的对象,当这些对象不再使用时,垃圾回收机制会自动回收其占用的内存,使这部分内存能够被再次利用。此机制极大地减少了开发者需要手动管理

    2024年02月09日
    浏览(38)
  • Java的垃圾回收机制详解

    目录 1、C语言与Java语言垃圾回收区别 2、System.gc() 3、面试题引入Java垃圾回收 3.1 jvm怎么确定哪些对象应该进行回收 3.1.1 引用计数法 3.1.2 可达性分析算法  3.2 jvm会在什么时候进行垃圾回收的动作 3.2 jvm到底是怎么回收垃圾对象的 4、垃圾回收算法 4.1 标记-清除算法 4. 2 复制算

    2024年02月09日
    浏览(48)
  • java---垃圾回收算法(GC)

    目录 一、如何判断一个对象是否存活 1.引用计数法 2.可达性分析法 二、垃圾回收算法 1.标记清除法 2.复制算法 3.标记整理法 4.分代算法 具体流程 注意事项 空间分配担保原则 总结 Java 堆中存放着几乎所有的对象实例,垃圾回收器在对堆进行垃圾回收前,首先要判断这些对象

    2024年02月05日
    浏览(37)
  • 初步认识Java垃圾回收算法

    GCRoot指被栈上直接或间接引用的对象,或被本地方法栈直接或间接引用的对象,或被方法区引用的对象。 被引用的对象是不能被删除的。 如果对象跟GCRoot并没有直接或间接相连的关系,那么这些对象就可以被删除了。 标记-清理 :将需要删除的对象标记一下,标记完了再扫

    2024年02月11日
    浏览(50)
  • java中的垃圾回收算法

    java中有四种垃圾回收算法,分别是: 标记清除法、标记整理法、复制算法、分代收集算法 1、标记清除法: 第一步:利用可达性去遍历内存,把存活对象和垃圾对象进行标记; 第二步:在遍历一遍,将所有标记的对象回收掉; 特点:效率不行,标记和清除的效率都不高;标记和清除

    2024年02月15日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包