Java基础--finalize()方法
Posted 执念saying
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java基础--finalize()方法相关的知识,希望对你有一定的参考价值。
原理:
一旦垃圾回收器准备好释放对象占用的存储空间,将首先调用其finalize()方法,并在下一次垃圾回收动作发生时,才会真正回收对象占用的内存。
用途:
1)释放通过某种创建对象方式以外的方式为对象分配的存储空间
那么对于一切都是对象的java,这种现象是怎么产生的呢?
主要发生在使用“本地方法”的情况下,(本地方法:一种在java中调用非java代码的方式),对于这样分配的java对象的存储空间就需要finalize()来释放内存
2)用finalize()来检测终结条件
例如:对象代表了一个打开的文件,在对象被回收前,应该关闭这个文件。
ps.
提醒jvm进行垃圾回收的方式
1)Runtime.getRuntime.gc()
2)System.gc()--(方法内部实现为Runtime.getRuntime.gc())
垃圾回收的两种方式
1)标记-清扫
2)停止-复制
以上是关于Java基础--finalize()方法的主要内容,如果未能解决你的问题,请参考以下文章
java基础知识分析: final , finally,finalize