【发布时间】:2014-06-04 22:59:12
【问题描述】:
我有一个大量使用 C++ JNI 共享对象的 Android 项目。事实上,我有一个 Java 对象来管理从 JNI 调用分配的资源。在那个特定的 Java 对象上,我使用 finalize() 调用来处理当对象被销毁时释放这些本机资源。
这一切似乎都有效,我没有看到任何内存泄漏,但是,我听说你不赞成使用 Java 终结器(Effective java,第 2 版第 27 页。第 7 项:避免终结器等) .是否存在适合使用 finalize() 的情况,例如我上面描述的情况?我不知道还能做些什么来确保这些原生资源得到清理。
【问题讨论】:
标签: java android c++ memory-management