很多时候,我遇到了这样的声明,即应用程序应始终明确地关闭它打开的所有资源。关闭资源总是很重要吗?
我的编程方法比较实用,我不喜欢盲目地遵循任何我没有明确看到的好处。因此我的问题。
让我们假设:
- 我有一个小的应用程序
- 它开辟一些资源(例如文件,数据库连接,远程流),并对其进行处理
- 它的工作几分钟,然后它退出
- 比方说,这是一个Java(如果语言是相关的)
难道我真的关心CL收取我打开的所有资源?我想所有打开的资源都将在应用程序/虚拟机退出时关闭/释放。我对吗?
如果这是真的,是否有任何令人信服的理由关心在如此短小的工作应用程序中关闭资源?
UPDATE:
问题纯属假设,但对于不关心有关的说法是,我可能只是黑客一起一些快速的脚本,不想写任何不必要的代码没有直接关系到手边的问题:关闭资源,做所有这些详尽的try-catch-finally的东西,处理我不在乎的异常等。
问题的关键在于是否有任何实际后果不这样做。
让我回答一个问题给你:你为什么不**关心关闭资源? –
“猜测当应用程序/虚拟机退出时,我打开的所有资源都将被关闭/释放。” - >我的猜测是这不是真的。如果您不关闭并且VM退出,则操作系统可能负责关闭这些流/套接字。 – kosa
为了摆脱警告,你必须禁止它们,它和.close()一样多。这也是很好的形式。 –