我一直在阅读关于finalize()的很多新手Java问题,并发现有点令人困惑的是,没有人真正说明finalize()是一种不可靠的清理资源的方法.我看到有人评论说他们用它来清理Connections,这真的很可怕,因为接近Connection的关闭的唯一方法就是最终实现try(catch).
我没有受过CS的教育,但是我已经用Java专业编程近十年了,我从未见过有人在生产系统中实现finalize().这仍然不意味着它没有它的用途,或者我与之合作过的人一直在做正确的事.
所以我的问题是,实现finalize()的用例是什么,无法通过语言中的其他进程或语法更可靠地处理?
请提供具体的方案或您的经验,只是重复Java教科书,或最终确定的用途是不够的,这不是这个问题的意图.
在做一些关于如何在android中传递对象引用的研究时,我正在思考以下内容.
假设我有一个带有Long作为键的WeakHashmap.现在我将一个Object放入此WeakHashMap并将其分配给键'new Long(1)'(假设我将保存对此Long的引用).
现在应用程序的另一部分创建一个新的Long(1),之后我将我的第一个Long(用作键)设置为null.