Java 应用程序终止时会释放其使用的资源吗?

And*_*lov 4 java connection memory-management

Java 应用程序可能使用 IO 流、套接字或数据库连接,当不再需要它们时应将其关闭。

然而,应用程序可能会被终止(例如通过终止进程)。在这种情况下,所有使用的资源都会被释放吗?谁将释放它们:操作系统还是 JRE?

FTh*_*son 5

JVM 在终止时将释放所有活动资源;但是,这并不能确保另一端也会释放资源,因此显式关闭资源符合每个程序员的最佳利益。

Java 7 中存在显式关闭流的替代方法,称为 try-resource“语句”,它相当于在finallytry 块之后的块中关闭资源。可以在此处找到更多相关信息。