我有一个大量使用 C++ JNI 共享对象的 Android 项目。事实上,我有一个管理从 JNI 调用分配的资源的 Java 对象。在那个特定的 Java 对象上,我使用 finalize() 调用来处理在对象被销毁时释放那些 native 资源。
这一切似乎都有效,我没有看到任何内存泄漏,但是,我听说您不赞成使用 Java 终结器(Effective java,第 2 版第 27 页。第 7 项:避免终结器等) .是否存在适合使用 finalize() 的情况,例如我上面描述的情况?我不确定还可以做些什么来确保这些原生资源得到清理。
最佳答案
我相信您的案例是为数不多的 appropriate to use a finalizer 案例之一.
关于java - 在 Java 中使用 finalize() 是否合适?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24048981/