静态变量引用的对象的垃圾收集

Rat*_*ass 3 java static garbage-collection memory-management

class StaticTest{

public static SomeClass statVar = new SomeClass();

}
Run Code Online (Sandbox Code Playgroud)

在此之后,如果我们StaticTest.statVar随机访问和分配一些新对象,那么所有这些对象何时会被垃圾收集?答:在正常的垃圾收集时间内。

但是如果 thisstatVar引用了一些实例变量(对象)呢?

不清楚?

好的,静态变量的生命周期是在类卸载之前。在 Web 应用程序中,我们在静态上下文中初始化许多东西。如果我们提供了一些对这个静态上下文的对象引用,但我们没有释放它们,那么它是如何被垃圾收集的?

我很乐意就此进行讨论。

kos*_*osa 5

在类卸载时,静态变量引用的对象将被垃圾回收。因此,在类卸载之前,静态引用所引用的对象不会被 GC 处理(因为堆中的对象始终存在可访问的引用)。