Android finalize()和System.exit()| System.gc()

Android finalize()和System.exit()| System.gc(),android,garbage-collection,system,finalize,Android,Garbage Collection,System,Finalize,我有一个关于垃圾收集器和Object.finalize()的问题。我创建了一个实现finalize方法的类。如果我运行我的应用程序并在DDMS中强制GC,则在我的类的对象上调用finalize,而不剩下任何引用。但如果我在应用程序中调用System.gc(),则不会调用finalize。离开应用程序时呼叫System.exit(0)不会导致最终确定。 为什么不打电话 但如果我在应用程序中调用System.gc(),则不会调用finalize 这是因为您的对象没有被垃圾收集gc()不执行完整的gc

我有一个关于垃圾收集器和Object.finalize()的问题。我创建了一个实现finalize方法的类。如果我运行我的应用程序并在DDMS中强制GC,则在我的类的对象上调用finalize,而不剩下任何引用。但如果我在应用程序中调用System.gc(),则不会调用finalize。离开应用程序时呼叫System.exit(0)不会导致最终确定。 为什么不打电话

但如果我在应用程序中调用System.gc(),则不会调用finalize

这是因为您的对象没有被垃圾收集<代码>gc()不执行完整的gc。相反,它收集一些垃圾,然后返回

离开应用程序时呼叫System.exit(0)不会导致最终确定

这是因为您的进程正在终止。终结器不会在进程终止时运行。而且,正如拉古南丹所指出的,请不要调用
System.exit(0)

但如果我在应用程序中调用System.gc(),则不会调用finalize

这是因为您的对象没有被垃圾收集<代码>gc()不执行完整的gc。相反,它收集一些垃圾,然后返回

离开应用程序时呼叫System.exit(0)不会导致最终确定


这是因为您的进程正在终止。终结器不会在进程终止时运行。而且,正如Raghunandan所指出的,请不要调用
System.exit(0)

GC为您完成这项工作。因此,不需要调用
System.gc()
System.exit(0)
。检查stackoverflow是否有公共软件对该主题的回答。她是链接。不要使用
系统。退出(0)
我最近也回答了一个类似的问题:GC为您做这项工作。因此,不需要调用
System.gc()
System.exit(0)
。检查stackoverflow是否有公共软件对该主题的回答。她是链接。不要使用
系统。退出(0)
我最近回答了一个类似的问题: