我是 GC 新手,想知道除了不再被任何变量引用的引用之外,垃圾收集器还会收集什么?以下是我要检查的列表
- 原始类型(int、double、float、char...)是否会被 GC 回收?
- 静态变量会被 GC 回收吗?
- final 变量是否会被 GC 回收(我认为因为它被标记为不可变,所以没有什么可收集的)?
- 所有方法(静态和非静态)都经过 GC 处理吗?
- 线程是否会被 GC 处理?
最佳答案
GC 不收集任何引用,它只是释放不再可访问的对象(堆上的内存)。
静态是特殊的内存位置,与类/类加载器相关。如果类/类加载器未部署,则静态内容将从内存中删除。
原始类型如果与对象(类变量)关联,那么当对象不可访问时它们将被GC。
如果是局部变量/参数变量,它们将在堆栈上,因此一旦方法执行完成,它们就会被回收。
关于Java : What is Garbage Collector collecting?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11854077/