黑马程序员技术交流社区
标题:
final关键字
[打印本页]
作者:
晚上没饭吃
时间:
2015-8-4 19:49
标题:
final关键字
final关键字
在继承中很多时候,有写内容,是不能被子类重写的,而我们又知道。只要方法声明子类就可以重写父类方法,这样就让父类的方法不安全了。
针对这个情况,我们如果能做一个标记,告诉别人注意这个方法时不可以被重写了,那么这个标记就是final。
概述
final关键字:最终的意思。它可以修饰类,修饰成员变量,修饰成员变量。
作用
final 放在类前面 如果某个类在定义时,前面有修饰词final,则该类不能被继承
final 放在属性前面 属性声明时,如果前面有修饰词final关键字,则该属性值不能被更改,即此时该属性为常量
final放在方法前面 如果某个方法在定义时,前面有修饰词final,该方法可以被调用,不能重写
static和final关键字区别
很多时候会容易把static和final关键字混淆,static作用于成员变量用来表示只保存一份副本,而final的作用是用来保证变量不可变。
面试题
fianl,finally,finalize的区别
前面2个好说,后面一个是String的来讲回收器。一般不常用
finally里面的代码真的永远会执行,但是有一个特殊情况:在代码执行到finally之前,jvm就退出了。
如果 return在finally之前,finally还会执行吗
会执行,在return只间执行。如下代码 public class Replace { public static void main(String[] args) { method(); }
private static int method() {
// TODO Auto-generated method stub
int a=10;
try{
System.out.println(a/0);
System.out.println("a="+a);
}catch(ArithmeticException e){
a=20;
return a;
}finally{
System.out.println("a="+a);
a=30;
}
return a;
}
}
上面的代码显示的是,代码先运行到return的时候看到还有finally,所以就执行了finally语句执行完毕后再返回到return,返回之前的a的值,而不是finally里面的a的值,结果是 a=20;
作者:
修道解厄
时间:
2015-8-6 23:25
finally的执行顺序问题
作者:
愤怒的哈博兔
时间:
2015-8-6 23:52
总结得很好嘛
作者:
13414309233F
时间:
2015-8-7 00:07
支持,顶!!!!
作者:
boboyuwu
时间:
2015-8-7 12:39
final的生存周期是什么范围
作者:
xiao_D
时间:
2015-8-13 11:05
好 受教了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2