java final关键字使用及面试题重点
1. 在java中声明类、属性和方法时,可以使用关键字final来修饰,表示“最终的”。2.java 面试题final关键字知识点,例题
1. 在java中声明类、属性和方法时,可以使用关键字final来修饰,表示“最终的”。
final修饰类:(俗称太监类不能有孩子) 提高安全性,提高程序的可读性 这个类就不能被继承。如:String类、StringBuffer类、System类
final class A{
}
final修饰方法:(确定下功能,没有被子类重写的必要) 不能被子类重写。如:Object的getClass();功能已经确定下来,就算子类重写了该方法后,也是实现一样的功能,所以没有必要被子类重写。
class C{
public final void method1() {
System
.out
.println("I am method1");
}
}
class E extends C{
}
final修饰属性:(已经是常量) 此属性就是一个常量,一旦初始后,不可再被赋值。习惯上,重用大写字符表示。 此常量在哪里赋值:①此常量不能使用默认初始②可以显示的赋值、代码块、构造器 注:显示赋值和代码块赋值只能有其中的一个 变量用static final修饰:全局常量,如Math类的PI
public class Test {
public static void main(String
[] args
) {
C c
= new C();
System
.out
.println(c
.getClass());
System
.out
.println(Math
.PI
);
}
}
class D{
final int I
= 11;
final double PI
;
final String NAME
;
public void m1(){
System
.out
.println(I
);
}
{
PI
= 3.14;
}
public D() {
NAME
= "DD";
}
public D(String name
) {
this();
}
}
付:后续需要知道final 与 finally finalize()区别
Object.finalize()//辣鸡回收的,显示把内存中对象清理掉
2.java 面试题final关键字知识点,例题
排除错误例题一
public class Something {
public int addOne(final int x
) {
return ++x
;
}
}
排除错误例题一
public class Something {
public static void main(String
[] args
) {
Other o
= new Other();
new Something().addOne(o
);
}
public void addOne(final Other o
) {
o
.i
++;
}
}
class Other {
public int i
;
}