一、final------是关键字
1、修饰数据成员
(1)基本类型:值不变
(2)对象类型:引用不变,一旦指定一个对象后,不能再改为指向另一个对象
2、修饰方法:该方法不能被重写
3、修饰类:该类不能被继承
二、finally------是区域块,与try...catch...finally连用
在try...catch...finally模型中,无论怎么样,finally块中都会被执行
三、finalize------是Object的一个方法
1、作用:
GC只知道回收那些由new分配的内存,若你的对象不是通过new方式获得了一块“特殊”的内存(比如:native 方法中调用C的malloc分配内存,除非你调用了free,否则这块内存得不到释放,从而造成了内存泄露),那么GC就无能为力了。这时候,可以在finalize中调用free。
2、原理
一旦垃圾收集器准备好释放对象占用的存储空间,它首先调用finalize(),而且只有在下一次垃圾收集过程中,才会真正回收对象的内存。
3、注意
无论是gc还是finalize,都不能保证一定会发生。若jvm并未面临内存耗尽的情形,它是不会浪费时间去执行gc的。通常,不能指望finalize,必须创建其他的清理方法,并且明确地调用它们。