美文网首页
JVM(三) -- JVM对象回收判断

JVM(三) -- JVM对象回收判断

作者: OakesYa | 来源:发表于2020-05-13 22:56 被阅读0次

主要来源自阅读深入理解java虚拟机

引用计数法

对对象添加一个引用计数器,每当有一个地方引用,计数器就会加1;当引用失效时计数器就减1,任何时刻计数器为0的时候就应该可回收了。优点在于实现简单,但是引用计数法很难解决循环引用的问题

可达性分析

可达性分析是java实际的算法,通过GC Roots开始乡下搜索,搜索走过的路径叫引用链,当一个对象到GC Roots没有任何引用链,就可以判断成可回收对象,GC Roots包含

  • 虚拟机栈中引用的对象
  • 方法区类静态属性引用的对象
  • 方法区常量引用的对象
  • 本地方法栈中JNI引用的对象

引用

  • 强引用
    强引用就是指代码中普遍存在的,类似"Object obj = new Object()"这类的引用,只要强引用还存在,垃圾收集器永远不会回收被引用的对象
  • 软引用
    软引用是用来描述一些还有用但并非必需的对象,对于软引用关联的对象,在系统将要发生内存溢出异常之前会先对这些对象进行第二次回收,如果仍然没有足够内存才报内存溢出异常
  • 弱引用
    被弱引用关联的对象只能生存到下次垃圾回收之前,当垃圾回收器工作时,无论当前内存是否足够,都会回收掉只被弱引用关联的对象。WeakReference类可以实现一个弱引用,Thread类源码中也会看到
  • 虚引用
    虚引用是最弱的一种引用关系,一个对象是否有虚引用完全不会对其生存时间有影响,PhantomReference可以实现一个虚引用

相关文章

  • JVM(三) -- JVM对象回收判断

    主要来源自阅读深入理解java虚拟机 引用计数法 对对象添加一个引用计数器,每当有一个地方引用,计数器就会加1;当...

  • JVM垃圾回收算法介绍

    之前的一篇:JVM垃圾回收前奏-对象已死?介绍了JVM会回收掉什么样的对象,那在明确了需要回收的对象之后,JVM会...

  • JVM

    JVM之内存模型JVM之对象定位与访问JVM之Java垃圾回收机制JVM之类加载

  • JVM之判断对象的存活状态

    jvm垃圾收集器在进行垃圾回收时,会判断对象是否存活状态,只有死去的对象才会被回收。那么怎么判断对象的存活状态呢?...

  • 九神带你入门JVM(下)

    我们接着上面一篇继续学习JVM的基本知识。 对象存活判断 上篇中我们介绍过JVM垃圾回收综述中说过一次垃圾回收之后...

  • 深入理解JVM第三章笔记

    深入理解JVM第三章笔记 背景 垃圾收集需要考虑的三件事: 哪些内存需要回收 什么时候回收 如何回收 如何判断对象...

  • 浅谈JAVA虚拟机中的GC

    前言 本文从JVM如何判定对象是否需要回收开始分析,再到JVM的几种垃圾回收思想如何产生,最后再来介绍JVM经典的...

  • 架构师训练营第9周作业 JVM垃圾回收 秒杀架构

    请简述JVM垃圾回收原理 所谓垃圾回收,指的是JVM将堆空间中不再使用的对象清理掉的过程,这是由JVM自动完成的。...

  • Java虚拟机笔记 jvm notes(II GC)

    垃圾回收机制 比较好的文章: JVM 优化经验总结 JVM调优总结 1⃣️可回收对象算法 目前查看对象是否需要回收...

  • Java(Android)垃圾回收(GC)

    本文我们主要分析Java中的垃圾回收机制: 1、JVM怎么确定哪些对象应该被回收 2、JVM在什么时候执行垃圾回收...

网友评论

      本文标题:JVM(三) -- JVM对象回收判断

      本文链接:https://www.haomeiwen.com/subject/cxbaghtx.html