没有变量赋值的对象创建

时间:2014-04-03 14:13:30

标签: java object garbage-collection

创建但未分配给变量的对象会发生什么?是垃圾立即收集了吗?

在我的一个程序中,我正在测试创建特定对象是否会引发异常。在catch块中,如果抛出异常,我将返回false函数调用(我知道这不是最好的方法)。

但无论如何,如果我这样做:

new Object();

记忆中发生了什么?

3 个答案:

答案 0 :(得分:2)

这取决于对象的构造函数。如果它将它自己的引用存储在另一个对象中,它当然不会被销毁。否则,GC会在下次收集时将其销毁。

答案 1 :(得分:1)

此类对象没有指向它的引用,因此它可用于垃圾收集,并将在下一个GC中销毁。

答案 2 :(得分:0)

当控件超出声明范围(方法或块)时,该对象将符合GC的条件。