java - 垃圾收集过程中什么是引用处理

标签 java reference garbage-collection g1gc

我正在阅读有关 G1 GC 的内容,在 Young 收集和并发标记周期步骤中都有名为“Reference Processing”和“Reference Enq”的过程。这些过程到底是什么?那里会发生什么?

最佳答案

引用处理是专门用于处理特殊引用对象(例如弱引用、终结器、JNI 引用)的阶段。

特殊引用有两个重要方面

  • 它们可能具有关于对象可达性的特殊语义(例如弱引用)
  • 由于 GC 工作,可能需要将引用对象添加到引用队列

在正常的 GC 阶段,引用对象会排队等待后处理。

“Ref Proc”阶段在主 GC 阶段之后开始,因此知道哪些对象存活下来,哪些对象没有存活,因此可以应用引用语义。

“Ref Enq”随后完成,将引用放入引用队列(引用队列是堆上的 Java 对象,通常用于实现由特殊引用启用的模式)。

关于java - 垃圾收集过程中什么是引用处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56846977/

相关文章:

java - 插入性能和插入稳定性差的 Cassandra 集群

java - JHipster JDL 是否有 'on update CURRENT_TIMESTAMP'

C#:指向多个整数的引用/指针数组

arrays - Perl 概念动态引用数组

在这种情况下,Javascript 通过引用而不是值传递?

java - android - java - 带有 ArrayList 的 WeakReferences?

java - 有没有更干净的方法来减少这个多维字节数组以删除重复项?

java - java客户端服务器实现中的幂等/非幂等操作

java - java中的软引用会不会一下子清空?

c++11:它的gc接口(interface)是什么,如何实现?