Java是否有析构函数? 我似乎无法在此找到任何文档。 如果没有,我怎么能达到同样的效果?
为了使我的问题更具体,我正在编写一个处理数据的应用程序,规范中说应该有一个“重置”按钮,以将应用程序恢复到其最初的启动状态。 但是,除非关闭应用程序或按下重置按钮,否则所有数据都必须处于“活动”状态。
我通常是C / C ++程序员,所以我认为这是微不足道的。 (因此,我计划最后实现它。)我对程序进行了结构设计,以使所有“可重置”对象都位于同一类中,以便在按下重置按钮时可以销毁所有“活动”对象。
我在想,如果我只是想取消引用数据并等待垃圾收集器来收集它们,如果我的用户重复输入数据并按下“重置”按钮,会不会发生内存泄漏? 我也在想,因为Java作为一种语言已经相当成熟,所以应该有一种方法可以防止这种情况的发生或妥善解决。
#1楼
随着Java 1.7的发布,您现在有了使用try-with-resources块的附加选项。 例如,
public class Closeable implements AutoCloseable {
@Override
public void close() {
System.out.println("closing...");
}
public static void main(String[] args) {
try (Closeable c = new Closeable()) {
System.out.println("trying...");