关闭资源是否总是很重要?


问题内容

我多次遇到这样的说法:应用程序应始终显式关闭其打开的所有资源。

我的编程方法比较务实,我不想盲目遵循任何我没有清楚看到的好处的约定。因此,我的问题。

假设:

  1. 我有一个小应用
  2. 它打开一些资源(例如文件,数据库连接,远程流)并对其进行处理
  3. 它可以工作几分钟,然后退出
  4. 假设它是Java语言(如果语言相关)

我真的需要关心关闭所有打开的资源吗?我猜我打开的所有资源都会在应用程序/虚拟机退出时关闭/释放。我对吗?

如果是这样,那么有什么令人信服的理由来关心在如此小的,短暂的应用程序中关闭资源?

更新:

这个问题纯粹是假设性的,但是 不关心
这个问题的论点是,我可能只是在一起整理一些快速脚本,并且不想编写与当前问题没有直接关系的任何不必要的代码:关闭资源,执行所有这些操作详细的try-
catch-finally内容,处理我不在乎的异常等。

问题的关键是不这样做会产生任何 实际 后果。


问题答案:

我猜我打开的所有资源都将在应用程序/虚拟机退出时关闭/释放。

无法正常释放的资源发生的情况是您无法控制的。它可能不会造成伤害,也可能会造成伤害。它也是高度依赖平台的,因此仅对其中一个进行测试将无济于事。

我为什么要在如此小的,短暂的应用程序中关闭这些资源?

应用程序的大小无关紧要。首先,应用程序通常会增长;其次,如果您没有练习正确的方法,那么当事情变得重要时,您将不知道该怎么做。