我在一次采访中遇到了这个问题,有以下选择:
How to destroy an object in java?
a. System.gc();
b. Runtime.getRuntime.gc();
c. object.delete();
d. object.finalize();
e. Java performs gc by itself, no need to do it manually.
答案应该是e?
如果没有 e 怎么办?然后 ? 显然 c 不是答案。 a 和 b 将为整个应用程序执行 gc(问题需要一个对象)。 我认为它是 d 因为 finalize() 在 gc 之前被调用(但是在 finalize gc 被调用之后是否有必要?)或者我错了? e 必须在场才能回答这个问题?
最佳答案
答案 E 是正确答案。如果 E 不存在,你很快就会耗尽内存(或)没有正确答案。
对象应该是不可访问的,才有资格进行 GC。 JVM 会进行多次扫描并将对象从一代移动到另一代,以确定 GC 的资格,并在对象不可达时释放内存。
关于java - 如何在java中销毁一个对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13205773/