final
fianl是一个修饰符,可以修饰成员、方法和类
final成员
当类中成员变量用final修饰的时候,表示这个这个变量一旦初始化,便不可改变,这里的不可改变是说两点:
(1)final修饰的基本类型值不变,在被调用方法中更改final变量不会影响调用程序里的值。
(2)fianl修饰的对象变量其引用不变,在被调用方法中修改对象变量,引用没变,对象值变了,用fianl修饰对象参数,可以防止影响到调用方法的对象变量。
final方法
(1)用fianl修饰一个方法,表明这个方法可能完善了,不需要修改扩展了,fianl方法可继承不可重载。
(2)用fianl修饰一个方法,编译器会将此方法的调用转换为inline机制(被调用的fianl方法代码直接插入调用方法调用处,有可能使调用方法臃肿,慎用fianl修饰方法)。
final类
(1)用final修饰类,表示这个类已经完善不需要扩展了,所以fianl类不可继承。
(2)Fianl类中成员可以定义成final型或一般型,方法只能是fianl型。
finally
fianlly是java异常处理模型中的,用finally修饰的代码块,不管有没有异常,必然会执行;
finally修饰代码块,可以维护对象的内部状态,并可以清除非内存资源。
finalize
finalize是一个方法名,即finalize();
Java技术允许使用finalize()方法在垃圾收集器讲对象从内存中清除之前,对这个对象进行调用,将其清理掉;例如:I/O操作和数据连接的清理。
finalize()函数是用来清理不需要的资源,所以这个函数最多只能调用一次,同时,调用的时候要保证这个对象没有引用,即对象不可达,这也是java语言规范里面所定义的。
finalize()方法定义在Object类中,所有的类都继承了这个方法,都可以调用这个方法进清除;但是,程序员应该通过程序本身来管理资源,以finalize()方法释放资源为辅,形成一种双保险管理机制。