我可以在逻辑上控制finalize()方法在java中运行与否? 我想根据条件方法返回的结果运行finalize()方法。
答案 0 :(得分:2)
我可以在逻辑上控制finalize()方法在java中运行吗?
答案是你不能。
我想根据返回的结果运行finalize()方法 条件方法。
您可以在最终确定中使用条件或标记来确定是否要进行清理。
答案 1 :(得分:0)
不,你不能。 Asynchronously
开始清理时调用GC
。
请参阅docs,
当垃圾收集确定没有对该对象的更多引用时,由对象上的垃圾收集器调用。子类重写finalize方法以处置系统资源或执行其他清理。
但是在最终确定中进行清理(或某些逻辑)对我来说似乎没什么设计缺陷。
答案 2 :(得分:0)
答案 3 :(得分:0)
坦率地说,你无法控制终结方法。这一切都取决于JVM逻辑。 最多只能调用System.gc();请求JVM运行垃圾收集器但是它再次完全依赖于JVM算法是否运行它。
如果你的对象在任何时候被垃圾收集但是不能保证,那么Finalize方法只是做一些操作的选项。
答案 4 :(得分:0)
如果您真的想要执行自定义任务,可以覆盖finalize方法。但最好不要依赖它。