美文网首页
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 对象存活判断

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