| final | 修饰符(修饰 变量,方法,类不可改变) | final变量 :表示常量,只能被赋值一次,赋值后值不再改变。final方法 :不能(被子类的方法)覆盖,但可以被继承。final类 :不能被继承,没有子类,final类中的方法默认是final。final不能用于修饰构造方法。 |
|---|---|---|
| finally | 异常处理中的程序块 | 在异常处理时,使用finally块来进行必要的清理工作,不管是否发生异常 |
| finalize | 方法名 | 在垃圾回收器将内存中的对象进行清空之前,使用finalize()方法做清理工作 |
1、final修饰符(关键字)。被final修饰的类,就意味着不能再派生出新的子类,不能作为父类而被子类继承。因此一个类不能既被abstract声明,又被final声明。将变量或方法声明为final,可以保证他们在使用的过程中不被修改。被声明为final的变量必须在声明时给出变量的初始值,而在以后的引用中只能读取。被final声明的方法也同样只能使用,即不能方法重写。
public class finalTest{
final int a=6;//final成员变量不能被更改
final int b;//在声明final成员变量时没有赋值,称为空白final
public finalTest(){
b=8;//在构造方法中为空白final赋值
}
int do(final x){//设置final参数,不可以修改参数x的值
return x+1;
}
void doit(){
final int i = 7;//局部变量定义为final,不可改变i的值
}
}
2、finally是在异常处理时提供finally块来执行任何清除操作。不管有没有异常被抛出、捕获,finally块都会被执行。try块中的内容是在无异常时执行到结束。catch块中的内容,是在try块内容发生catch所声明的异常时,跳转到catch块中执行。finally块则是无论异常是否发生,都会执行finally块的内容,所以在代码逻辑中有需要无论发生什么都必须执行的代码,就可以放在finally块中。
3、finalize是方法名。java技术允许使用finalize()方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在object类中定义的,因此所有的类都继承了它。子类覆盖finalize()方法以整理系统资源或者被执行其他清理工作。finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。
本文介绍了Java中final、finally和finalize的相关知识。final修饰类不能被继承,修饰变量和方法不可修改;finally用于异常处理,无论有无异常都会执行其块内代码;finalize是方法名,在垃圾收集器清除对象前做清理工作。
468

被折叠的 条评论
为什么被折叠?



