创建但未分配给变量的对象会发生什么?是垃圾立即收集了吗?
在我的一个程序中,我正在测试创建特定对象是否会引发异常。在catch块中,如果抛出异常,我将返回false函数调用(我知道这不是最好的方法)。
但无论如何,如果我这样做:
new Object();
记忆中发生了什么?
答案 0 :(得分:2)
这取决于对象的构造函数。如果它将它自己的引用存储在另一个对象中,它当然不会被销毁。否则,GC会在下次收集时将其销毁。
答案 1 :(得分:1)
此类对象没有指向它的引用,因此它可用于垃圾收集,并将在下一个GC中销毁。
答案 2 :(得分:0)
当控件超出声明范围(方法或块)时,该对象将符合GC的条件。