如果我将对象的所有字段都设置为null,它将从垃圾收集器中被杀死吗?

时间:2014-07-24 07:46:31

标签: java garbage-collection

如果,我将对象的所有字段都设置为null,则意味着该对象也设置为null?它会从垃圾收集器中收集吗?

2 个答案:

答案 0 :(得分:1)

不,Java Garbage收集器只会删除没有有效引用的对象。

将对象的所有字段设置为null不会减少对象本身的引用计数。但是,它可以允许GC删除那些字段曾经引用的对象,如果这些字段是对象的唯一(或最后一个)引用。

答案 1 :(得分:0)

JVM的垃圾收集器会删除丢失引用的对象(由于程序无法访问该对象)。

如果将对象的字段设置为null,则不会影响引用。因此GC不会删除该对象。

自动垃圾收集器基本上执行两项任务:

  1. 决定是否以及何时需要回收内存

  2. 找到程序不再需要的对象并回收
    他们的存储

  3. 程序无法保证自动垃圾收集器在执行期间运行。程序不应该依赖于自动垃圾收集器的行为调度

    know about The Garbage collection