如何在没有名称的情况下销毁java中的对象?

时间:2016-06-30 06:19:59

标签: java garbage-collection

我循环遍历数组并基于创建不同对象的值。我想知道如何删除或取消引用没有名称的对象。

这是我的意思

的一个例子
new Test(); // so now how would I delete this instance of test?

4 个答案:

答案 0 :(得分:4)

new Test().m1().m2();
// here the previous instance may be deleted, there is no reference to `new Test()` 

在之后GC 将删除它(我们不知道它将在何时被调用)所有操作(我们示例中的m1m2方法)完成它。

您可以拨打Runtime.getRuntime().gc()(或简称System.gc()),但无法保证垃圾收集器会来。

我试图画出我能想象的方式。

enter image description here

答案 1 :(得分:1)

Java自己执行GC,无需手动执行。

提及的对象不应该被用于有资格获得GC。 JVM将执行多次扫描,并将这些对象从一代移动到另一代,以确定GC的合格性,并在无法访问对象时释放内存。

答案 2 :(得分:1)

Java会自动删除它们,它被称为垃圾收集; - )

答案 3 :(得分:0)

如果对象是局部变量,它将在垃圾收集发生时自动收集垃圾。