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

JAVA基础面试题

java基础:对象的销毁

java的finalize方法使用

java ----------finalize方法总结GC执行finalize的过程

Java中finalize方法的问题[重复]