java - 在 Java 中使用 finalize() 是否合适?

标签 java android c++ memory-management

我有一个大量使用 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/

相关文章:

java - 在android中使用Fragment标签时出现XML错误

c++ - 内核开发和 C++

Java EE应用程序是否可以在Java Micro版本上运行?

java - 如何使同一个程序充当服务器和客户端(在java中使用套接字)

java - 尝试将 Double 解析为 String 时出现 ArrayOutOfBounds 异常

java - 如何通过快速拖动鼠标光标绘制重复椭圆的连续曲线?

android - 已完成 Android 应用程序更新 - 但没有原始私钥

java - Square Tape file backed queue 可以从 android 的主线程使用吗?

c++ - 是否可以使用 HTTPS 证书进行许可?

c++ - %x printf说明符的类型是否为long OK?