在第4行之后,有多少对象符合垃圾回收的条件

时间:2014-04-20 05:40:53

标签: java garbage-collection

public class GarbageCollection {
    public static void main(String[] args) 
    {
        GarbageCollection gb= new GarbageCollection();
        GarbageCollection gb2=method1(gb);
        GarbageCollection gb4=new GarbageCollection();
        gb2=gb4;/*line 4*/
        somethinsgsillogical();
    }

    static void somethinsgsillogical() {
     // TODO Auto-generated method stub

    }

    static GarbageCollection method1(GarbageCollection mgb)
    {
        mgb=new GarbageCollection();
        return mgb;
    }
}

程序是否合乎逻辑? 如果是,请注意,在第4行之后,有多少对象符合垃圾收集的条件

1 个答案:

答案 0 :(得分:1)

这似乎是一个家庭作业问题,你所做的就是发布问题,所以我会给你一个提示:

gb2=gb4

将为符合条件的垃圾收集分配任何gb2。这个对象是垃圾,因为它不再被引用。当垃圾没有被清理或标记为垃圾收集时,我们就会发生内存泄漏。

由于Java有垃圾收集器,因此在Java中泄漏内存实际上非常困难,但是当内存未正确管理时仍会发生泄漏。使用完毕后,始终将对象设置为null:

gb2 = null;
gb4 = null;

当一个对象没有对它的引用时,垃圾收集器会将其视为垃圾收集。

有关垃圾收集的更多信息,SO上有一个非常好的页面。我真的建议阅读它: