Java 如何确保在程序结束时关闭连接

Java 如何确保在程序结束时关闭连接,java,garbage-collection,apache-httpclient-4.x,finalizer,Java,Garbage Collection,Apache Httpclient 4.x,Finalizer,我使用一个数据库连接到一个数据库。我使用此连接来查询数据库,并在程序结束时确保注销并关闭连接 我应该在代码中的什么位置注销并关闭CloseableHttpClient?如果我不这样做,会话将在数据库中保持打开状态 最合适的位置是finalize方法,但不能保证在程序终止之前调用它。如果它在没有显式注销的情况下终止,将出现一个陈旧的连接,我想不惜一切代价避免这种情况。你不能。如果你的程序将被杀,比如,使用任务管理器,你什么都做不了。因此,最好的方法是使用finalize方法

我使用一个数据库连接到一个数据库。我使用此连接来查询数据库,并在程序结束时确保注销并关闭连接

我应该在代码中的什么位置注销并关闭
CloseableHttpClient
?如果我不这样做,会话将在数据库中保持打开状态


最合适的位置是
finalize
方法,但不能保证在程序终止之前调用它。如果它在没有显式注销的情况下终止,将出现一个陈旧的连接,我想不惜一切代价避免这种情况。

你不能。如果你的程序将被杀,比如,使用任务管理器,你什么都做不了。因此,最好的方法是使用
finalize
方法