Java : What is Garbage Collector collecting?

标签 java garbage-collection jvm

我是 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/

相关文章:

java - 是什么保证从另一个类的静态 block 调用静态方法按预期工作?

java - 线程 "main"中出现异常

java - 如何在 Try Catch 猜猜游戏中继续循环

java - 意外的 Full GC(符合人体工程学)

java - G1 GC——极长的终止时间

java - JVM 可以在应用程序运行时(突然)杀死计时器/守护线程吗?

java - 重温对象 wait() 和 notification()

java - Spring Boot rabbit mq spring.rabbitmq.listener.simple.concurrency 从不工作

java - 使用RequestMapping无法获取表单数据的处理方法

c# - 当前单声道默认垃圾收集器