finalize方法的几点理解

来源:互联网 发布:淘宝地址武汉没有汉口 编辑:程序博客网 时间:2024/04/26 08:33

1. finalize方法是java中用于在垃圾回收之前调用到一个方法,一般是用于回收一些“特殊”的内存空间。那么什么是特殊到内存空间呢?一般是指通过java调用一些本地的方法,比如c语言的方法,在这些本地方法里申请了内存空间。在垃圾回收的时候需要把这些空间释放。所以,finalize方法就是一个典型释放这种内存的典型地方。

2. finalize方法是只有在垃圾回收器必然执行前才会执行。这表示什么意思呢?就是如果我们定义了一个finalize方法,一般我们代码执行完毕如果没有引起垃圾回收的话,这个方法根本就不会执行。我们如果想要强制垃圾回收的话,可以通过调用System.gc()方法。这样每次强制触发垃圾回收的时候也会使得finalize方法每次都会执行。

3. finalize方法有一种用法是可以在这里判断某些特定条件下对象的状态。比如说在快要垃圾回收到时候,保证某些对象它是处于一个特定的状态,如果不是则说明处理的过程出了问题,相当于一个查错的过程。