Java应用程序可以使用IO流套接字或不再需要时,他们应该被关闭数据库连接。
然而,应用程序可以终止(通过中止进程EG)。 将所有使用的资源在这种情况下被释放? 谁将会释放他们:OS或JRE?
Java应用程序可以使用IO流套接字或不再需要时,他们应该被关闭数据库连接。
然而,应用程序可以终止(通过中止进程EG)。 将所有使用的资源在这种情况下被释放? 谁将会释放他们:OS或JRE?
如果您的软件不照顾资源管理不当,会发生以下情况:
正如火神提到的,没有这保证了他们妥善处理与在另一端,很明显。
需要注意的是第三个项目符号点是一个比较通用的东西:大多数操作系统都将照顾这,它不涉及到Java平台的内部。 这是关于OS中管理自身的流程和资源。
也可以看看:
JVM将释放终止时所有活动的资源; 然而,这并不能确保的另一端将释放的资源太多,所以显式关闭资源是每个程序员的最佳利益。
另一种明确关闭流在Java 7中存在,叫做试资源“声明”,这是在关闭资源相当于finally
try块后阻塞。 对更多信息,可以发现在这里 。