堆栈的Java垃圾收集器

时间:2015-04-13 12:57:11

标签: java garbage-collection

垃圾收集器是否负责删除堆栈?

是否还为静态/常量变量释放内存?

示例:

class A
{
   void fun(){
   int x = 100;
   static int y = 200;
   final int z = 300;
   }
}

当函数完成时,是否所有三个变量的内存都被释放了?

3 个答案:

答案 0 :(得分:2)

垃圾收集器负责堆上的孤立对象。

看看这个Oracle教程Java Garbage Collection Basics。它解释了GC基础知识。

答案 1 :(得分:2)

只要加载了它们所在的类,静态字段就不符合垃圾回收的条件。根据{{​​3}}:

  

当且仅当其定义类时,才可以卸载类或接口   垃圾收集器可以回收加载程序。

答案 2 :(得分:0)

基本上,垃圾收集会为JVM中任何其他对象不再引用的所有对象释放内存。因此,如果它是静态或实例字段或局部变量并不重要。