美文网首页
Java垃圾回收的终结机制

Java垃圾回收的终结机制

作者: 宇宙之一粟 | 来源:发表于2020-11-13 23:19 被阅读0次

(1) 如果可终结的对象不可达了,会在内部终结队列中放一个引用,指向这个对象;而且,为了回收垃圾,这个对象会被标记为“存活”。

(2) 对象一个接着一个从终结队列中移除,然后调用各自的 finalize() 方法。

(3) 调用终结方法后,不会立即释放对象,因为终结方法可能会把 this 引用存储在某个地方(例如在某个类的公开静态字段中),让对象再次拥有引用,复活对象。

(4) 因此,调用 finalize() 方法后,垃圾回收子系统在回收对象之前,必须重新判断对象是否可达。

(5) 不过,就算对象复活了,也不会再次调用终结方法。

(6) 综上所述,定义了 finalize() 方法的对象一般(至少)会多存活一个 GC 循环(如果是生命期长的对象,会再多存活一个完整的 GC 循环)。

相关文章

  • Java垃圾回收详解

    深入理解 Java 垃圾回收机制 深入理解 Java 垃圾回收机制 一:垃圾回收机制的意义 java 语言中一个...

  • Java 内存区域和GC机制

    Java垃圾回收概况 Java GC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与...

  • JVM垃圾回收机制

    JVM垃圾回收 整体思维导图 带着问题理解JVM垃圾回收机制 Java为什么需要垃圾回收机制; 回收哪部分垃圾; ...

  • Java垃圾回收的终结机制

    (1) 如果可终结的对象不可达了,会在内部终结队列中放一个引用,指向这个对象;而且,为了回收垃圾,这个对象会被标记...

  • Android知识大纲

    Android知识大纲 Java垃圾回收机制 Java内存是如何划分的,Java语言为什么要使用垃圾回收机制? 垃...

  • java内存结构和GC机制

    Java垃圾回收概况 Java GC(Garbage Collection,垃圾回收)机制,是Java与C++/C...

  • 对 Java 内存的一些理解-[Android_YangKe]

    Java 垃圾回收机制优点 Java 内存模型 什么是内存抖动 什么是内存泄漏 垃圾回收机制常见算法 Java 垃...

  • 优秀的程序员更重视阅读源码,不看源码那是假的

    从事Java开发的都知道java有个垃圾回收机制Garbage collection,要准确理解Java的垃圾回收...

  • JavaScript垃圾回收机制

    什么是垃圾回收机制? 和java,c#一样,javascript也有垃圾回收的机制,比如说c++和c就没有垃圾回收...

  • 2020-04-19 垃圾回收机制算法

    垃圾回收机制算法 垃圾回收机制概述 Java语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存...

网友评论

      本文标题:Java垃圾回收的终结机制

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