小编典典

Java有析构函数吗?

all

Java有析构函数吗?我似乎无法找到任何有关此的文档。如果没有,我怎样才能达到同样的效果?

为了使我的问题更具体,我正在编写一个处理数据的应用程序,并且规范说应该有一个“重置”按钮,可以将应用程序恢复到其刚启动的原始状态。但是,除非应用程序关闭或按下重置按钮,否则所有数据都必须是“实时的”。

通常作为 C/C++
程序员,我认为这很容易实现。(因此我计划最后实现它。)我构建了我的程序,使所有“可重置”对象都在同一个类中,这样我就可以在按下重置按钮时销毁所有“活动”对象。

我在想如果我所做的只是取消引用数据并等待垃圾收集器收集它们,如果我的用户反复输入数据并按下重置按钮,会不会出现内存泄漏?我也在想,既然 Java
作为一门语言已经相当成熟,应该有一种方法可以防止这种情况发生或优雅地解决这个问题。


阅读 153

收藏
2022-03-04

共1个答案

小编典典

因为 Java 是一种垃圾收集语言,所以您无法预测对象何时(或什至)会被销毁。因此,没有直接等效的析构函数。

有一个名为 的继承方法finalize,但这完全由垃圾收集器决定调用。因此,对于需要明确整理的类,约定是定义一个 close 方法并仅将
finalize 用于完整性检查(即,如果尚未调用 close则立即执行并记录错误)。

2022-03-04