java - 使用 Finalize() 进行清理 Activity ;

标签 java garbage-collection finalize

我读到了有关 Finalize() 方法的信息,该方法是由垃圾收集器在释放内存之前调用的。 从文档来看,finalize 用于进行清理 Activity 。但这次“清理 Activity ”到底清理了哪些“东西”

最佳答案

典型的清理类型是释放实例已分配的任何系统资源,例如 FileInputStream 中的文件描述符。

请注意,一个好的 Java 程序永远不会依赖于对象终结器中执行的清理,而是会在其使用到期时显式要求对象释放资源。

不幸的是,JDK 中有一些丑陋的例子,其中终结器是唯一提供的机制。其中一个臭名昭著的是 DirectByteBuffer,它分配 native (堆外)内存,并且不提供释放它的公共(public)方法。

关于java - 使用 Finalize() 进行清理 Activity ;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31636669/

相关文章:

java - 使用多个输出参数调用 Oracle StoredProcedure

javascript - WebGL 对象是否被垃圾收集?

java:所有线程终止后关闭连接

angular - rxjs takeUntil 不执行finalize

java - Finalize() 何时执行?

java - 包装多个 AutoCloseables

java - 如何使用另一个 jar 文件启动和停止一个 jar 文件?

java - 通过简单 HTTP GET/POST 的 JSON Web 服务

cocoa - 核心基础对象 - 潜在泄漏

java - 未使用的对象在堆栈中仍然可见时是否可用于垃圾回收?