美文网首页
2.2 对象存活判断

2.2 对象存活判断

作者: 9cc222f2bb0a | 来源:发表于2018-03-01 20:16 被阅读0次

1. 引用计数算法。无法解决仅仅互相引用的问题。

2. 可达性分析算法。可以通过GC Roots到达的即存活,否则不存活。

    可以作为GC Roots的对象:虚拟机栈中引用的对象,方法区中类静态属性引用的对象,方法区中常量引用的对象,本地方法栈中JNI(Native方法)引用的对象。

四种引用方式:

    强引用:直接引用,只要强引用在,对象就不会被回收

    软引用:描述有用但是非必要的对象,GC不会回收,但在内存溢出异常之前,会回收该类对象

    弱引用:描述非必须对象,只会存活到下一次GC之前

    虚引用:无法通过虚引用获得对象实例,虚引用的唯一目的是在被回收的时候收到一个系统通知。

最终死亡的过程:如果被可达性分析算法标记为不可达,那么会被第一次标记,然后筛选,筛选的逻辑是判断是否有必要执行finalize方法,判断规则是是否覆盖finalize()方法或者已经执行过该方法

相关文章

  • 2.2 对象存活判断

    1. 引用计数算法。无法解决仅仅互相引用的问题。 2. 可达性分析算法。可以通过GC Roots到达的即存活,否则...

  • GC算法

    主要关注点: 对象存活判断 GC算法 垃圾回收器 对象存活判断 判断对象是否存活一般有两种方式: 引用计数:每个对...

  • 垃圾收集--引用(2)

    根据上篇文章可知垃圾收集--判断对象是否存活 - 简书,判断对象是否存活和“引用”有关。 在JDK...

  • JVM对象存活判断

    垃圾回收的三个核心问题: 哪些内存需要回收? 什么时候回收? 如何回收? 一、对象存活判断 1.1、引用计数算法 ...

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

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

  • java虚拟机(3)-引用

    判断对象的存活 引用计数法:快,方便,实现简单;缺点:对象相互应用,很难判断对象是否回收 可达性分析 判断对象是否...

  • 《深入理解Java虚拟机》学习笔记(三)(垃圾收集器及内存分配策

    前言 本文章部分引用自 知乎胖胖的回答 可文分身的简书 垃圾收集器及内存分配策略 判断对象存活 判断对象存活算法 ...

  • 判断对象是否存活

    垃圾收集器在对堆进行回收之前,首先要确定哪些对象还存活着。 1.引用计数算法 在对象中添加一个引用计数器,每当有一...

  • 【深入理解Java虚拟机】三、垃圾收集器与内存分配策略

    1. 判断对象存活 Java堆中存放着几乎所有的对象实例,在垃圾回收前先要判断哪些对象“活着”,哪些对象已经“死去...

  • JVM:判断一个Java对象是否存活

    前言 如何判断一个Java对象是否存活对于垃圾回收、防止内存泄漏等十分重要 本文将全面讲解判断Java对象存活的方...

网友评论

      本文标题:2.2 对象存活判断

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