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

如何在java中销毁没有名称的对象?,java,garbage-collection,Java,Garbage Collection,我在一个数组中循环,并根据值创建一个不同的对象。我想知道如何删除或取消引用一个没有名字的对象 这里有一个例子来说明我的意思 new Test(); // so now how would I delete this instance of test? 在完成对它的所有操作(m1,m2方法)后(我们不知道确切的调用时间),GC将删除它 您可以调用Runtime.getRuntime().gc()(或者简单地调用),但不能保证垃圾收集器会出现 我试着画出我是如何想象的 如果对象是一个局部变量,它将

我在一个数组中循环,并根据值创建一个不同的对象。我想知道如何删除或取消引用一个没有名字的对象

这里有一个例子来说明我的意思

new Test(); // so now how would I delete this instance of test?
在完成对它的所有操作(
m1
m2
方法)后(我们不知道确切的调用时间),GC将删除它

您可以调用
Runtime.getRuntime().gc()
(或者简单地调用),但不能保证垃圾收集器会出现

我试着画出我是如何想象的


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

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


所提到的对象不应被使用以符合GC的条件。JVM将进行多次扫描,并将这些对象从一代移动到另一代,以确定GC的合格性,并在无法访问这些对象时释放内存。

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

在Java中,与C/C++不同,JVM为您处理垃圾收集。你不需要调用
delete
或类似的东西。你应该复习Java如何工作的基本教程。Java中没有这样的东西。在Java中,垃圾收集是自动化的,我们无法控制它。我们不能强迫JVM进行垃圾收集(不是没有大规模的攻击),但我们可以礼貌地要求它使用
System.gc()
new Test().m1().m2();
// here the previous instance may be deleted, there is no reference to `new Test()`