如何清除资源泄漏?

How to Clear Resource Leaks?

我有一个我一直在测试的 Java 代码,该代码使用扫描仪 class 而没有关闭它。我知道这会导致内存泄漏,并且即使在代码执行完毕后,扫描程序资源在代码执行期间占用的内存仍会被扫描程序资源占用。我知道关闭扫描器有助于防止这个问题,但是在没有关闭扫描器 class 的情况下测试代码时,重新启动计算机是否会释放扫描器 class 占用的内存代码执行后没有关闭?

您不需要重新启动整个计算机。每当您的 Java 应用程序结束时,所有占用的内存都会返回给操作系统。

扩展 答案:
因此,根据我的理解,当启动 Java 程序(应用程序或其他)时,会实例化 Java 虚拟机 (JVM)。这将提供和消耗您的程序所需的所有内存等。当 Scanner class 扫描文件时,它会向 JVM 询问文件句柄(这些是 Scanner 关闭时交回的东西),这些可能 运行 出来 - 这就是你需要的原因关闭您的扫描仪(或使用 Java 8+ 尝试资源)。
需要重新启动的是 JVM,而不是 运行正在运行 JVM 的计算机。