如何在Java中清除和销毁对象

56 浏览
0 Comments

如何在Java中清除和销毁对象

这个问题已经有答案了

如何在Java中强制进行垃圾回收?

我用一个非常简单的例子来问你关于Java中的垃圾回收。我有一个数组列表中的几个对象。在某些时候,我想从数组列表中删除一个对象,同时我想销毁这个对象。怎样去做呢?

请帮忙!

这是一个示例:

class SomeClass{
    public SomeClass()
    {
    }
}
public class Test 
{
    public static void main(String[] args)  throws Throwable
    {
        SomeClass a = new SomeClass();
        SomeClass b = new SomeClass();
         ArrayList arr = new ArrayList();
          arr.add(a);
          arr.add(b);
          //this doesn't work
          SomeClass tmp =  arr.remove(0);
          tmp = null;
          /* I want to do something like this. I want to remove the object from arrayList
              and at the same time to clean this object. Something like this:
              arr.remove(0) = null;
          */
          System.out.println(a);
    }
}

admin 更改状态以发布 2023年5月21日
0
0 Comments

Java运行垃圾回收是异步的。因此,即使您没有对该对象的引用,在下一次GC迭代中,该对象也会从堆中删除。

0
0 Comments

Java是一种垃圾回收语言,我们不需要手动释放内存,也不能手动释放内存。一旦您解除了对一个对象的引用,下一次GC运行时就会标记或清除该对象。您无法手动销毁对象,只能取消引用。

如果您需要在对象被销毁之前进行钩子操作,则可以重写finalize方法。

@Override protected void finalize() throws Throwable {
   // clean up logic
}

0