memory-leaks - 当循环引用的访问路径被破坏时,Java 垃圾收集器如何处理循环引用?

标签 memory-leaks garbage-collection heap-memory

有人可以向我解释一下,当引用计数大于 0 并且几乎无法访问时,Java 垃圾收集器如何意识到这些内存块(如红色区域所示)是垃圾? heap space

最佳答案

有一组“根对象”被认为是始终可访问的:例如,线程引用、静态变量、类引用。如果某个对象无法通过这些根对象的引用链接到达,则认为该对象可用于 GC,即使存在对该对象的一些引用。

关于memory-leaks - 当循环引用的访问路径被破坏时,Java 垃圾收集器如何处理循环引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8895618/

相关文章:

javascript - 这个堆栈跟踪是什么意思?

c# - 将字符串 (const char*) 从 C++ 传递到 C# 时,SWIG_csharp_string_callback 会导致内存泄漏

C++ - 使用引用计数的基本垃圾收集器

linux - 如何为 linux/unix 命令分配 RAM 和堆空间?

node.js - 对象内存泄漏(当 nodejs 配置为最大 512M 时,Heroku 内存使用量达到 1.5 GB)

javascript - 树莓派 JavaScript 内存泄漏

java - 我怎样才能用代码进行java对象分配跟踪

c# - C#'s ` yield return` 为我制造了很多垃圾。有救吗?

c++ - 分配期间内存损坏错误

c++ - 为什么我不能通过指针从数组中删除非第一个元素