71得票5回答
什么是"根"?

垃圾回收中的根是什么? 我已经阅读了根的定义:"程序可以访问的任何引用",并且“活动对象”的定义是正在使用的对象,可以是局部变量、静态变量。 我有点困惑于区分根和活动对象之间的差别。 什么是根路径?根和活动对象如何工作? 有人能详细解释一下吗?

62得票9回答
Java 中的栈是否被垃圾回收?

在Java中,堆内存是由垃圾回收器进行垃圾回收的。 那么栈内存也被垃圾回收吗? 栈内存是如何被回收的?

10得票3回答
线程作为GC根节点

我有一个关于GC根的问题。我看到其中一个GC根是“活动线程”。这是什么意思? 我一直以为每个线程都有自己的堆栈,堆栈中的局部变量是线程的GC根,现在我感到困惑了。除了框架堆栈或本地堆栈上没有的对象引用之外,线程表示还有哪些其他类型的对象引用? 另一个问题是年轻代回收是否使用GC根,还是只用...

7得票2回答
如何在堆栈机中查找GC根?

我正在编写一个相当标准的堆栈机编译器。现在我想添加垃圾回收器。我可以看到我可以生成某种“堆栈映射”以知道每个激活记录中哪些变量是gc根。然而,我不知道如何处理执行期间推送到堆栈中的中间值。我正在编译的语言类似于Pascal,因此我不需要也不想使用标签来标识指针和其他数据类型。 我会感激任何关...