java - 如何在java中销毁一个对象?

标签 java garbage-collection finalize

我在一次采访中遇到了这个问题,有以下选择:

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.
  1. 答案应该是e?

  2. 如果没有 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/

相关文章:

java - PreparedStatement 导致 OOM 错误

c# 我的析构函数没有被调用?

Java面试题: finalize() method

java - 如何简化 MouseListener 以便我没有所有这些未使用的方法?

Java搜索文本文件中的文本

java - 如何将标准 xml 页面放入 AlertDialog - Android

java - Java中的finalize()方法什么时候被调用?

java - 为什么连续两次调用同一方法会产生不同的执行时间?

objective-c - 如何确定已编译的 Objective-C 应用程序是否正在使用垃圾回收?

c# - WPF View 模型 GC