我一直在阅读关于finalize()的很多新手Java问题,并发现有点令人困惑的是,没有人真正说明finalize()是一种不可靠的清理资源的方法.我看到有人评论说他们用它来清理Connections,这真的很可怕,因为接近Connection的关闭的唯一方法就是最终实现try(catch).
我没有受过CS的教育,但是我已经用Java专业编程近十年了,我从未见过有人在生产系统中实现finalize().这仍然不意味着它没有它的用途,或者我与之合作过的人一直在做正确的事.
所以我的问题是,实现finalize()的用例是什么,无法通过语言中的其他进程或语法更可靠地处理?
请提供具体的方案或您的经验,只是重复Java教科书,或最终确定的用途是不够的,这不是这个问题的意图.
PreparedStatement在JDBC中使用时,我应该关闭第PreparedStatement一个还是第Connection一个?我刚刚看到一个代码示例,其中Connection首先关闭它,但在我看来更合乎逻辑地关闭第PreparedStatement一个.
是否有标准的,可接受的方式来做到这一点?有关系吗?关闭Connection也会导致PreparedStatement关闭,因为PreparedStatement它与Connection对象直接相关吗?