Java应用程序可能会使用IO流,套接字或数据库连接,这些连接应在不再需要时关闭。
然而,可以终止应用程序(例如,通过终止该过程)。在这种情况下,是否会释放所有使用过的资源?谁将释放他们:OS或JRE?
答案 0 :(得分:4)
JVM将在终止时释放所有活动资源;但是,这并不能确保另一端也会释放资源,因此明确关闭资源是每个程序员的最佳利益。
Java 7中存在显式关闭流的替代方法,称为try-resource"语句",这相当于在try块之后关闭finally
块中的资源。有关详情,请访问here。
答案 1 :(得分:2)
如果您的软件没有正确处理资源管理,则会发生以下情况:
正如Vulcan所提到的,显然这一切都不能确保它们在另一端得到妥善处理。
请注意,第3个要点是相当通用的:大多数操作系统都会处理这个问题,它与Java平台的内部结构无关。它是关于操作系统自己管理其流程和资源的。
另见: