我循环遍历数组并基于创建不同对象的值。我想知道如何删除或取消引用没有名称的对象。
这是我的意思
的一个例子new Test(); // so now how would I delete this instance of test?
答案 0 :(得分:4)
new Test().m1().m2();
// here the previous instance may be deleted, there is no reference to `new Test()`
在之后GC 将删除它(我们不知道它将在何时被调用)所有操作(我们示例中的m1
,m2
方法)完成它。
您可以拨打Runtime.getRuntime().gc()
(或简称System.gc()
),但无法保证垃圾收集器会来。
我试图画出我能想象的方式。
答案 1 :(得分:1)
Java自己执行GC,无需手动执行。
提及的对象不应该被用于有资格获得GC。 JVM将执行多次扫描,并将这些对象从一代移动到另一代,以确定GC的合格性,并在无法访问对象时释放内存。
答案 2 :(得分:1)
Java会自动删除它们,它被称为垃圾收集; - )
答案 3 :(得分:0)
如果对象是局部变量,它将在垃圾收集发生时自动收集垃圾。