关键字:final

在Java中声明类、变量和方法时,可使用关键字final来修饰,表示“最终的”。

final修饰类:

final标记的类不能被继承。提高安全性,提高程序的可读性。
String类、System类、StringBuffer类

final修饰方法:

final标记的方法不能被子类重写。
比如:Object类中的getClass()。

final修饰变量

final标记的变量(成员变量或局部变量)即称为常量。名称大写,且只能被赋值一次。

  • final修饰属性:可以考虑赋值的位置:显式初始化、代码块中初始化、构造器中初始化
  • final修饰局部变量:

尤其是使用final修饰形参时,表明此形参是一个常量。当我们调用此方法时,给常量形参赋一个实参。一旦赋值以后,就只能在方法体内使用此形参,但不能进行重新赋值。

注:static final 用来修饰属性:全局常量

面试题:
public class Something {
public static void main(String[] args) {
Other o = new Other();
new Something().addOne(o);
}
public void addOne(final Other o) {
// o = new Other(); 打开报错
o.i++;//正常运行
}
}
class Other {
public int i;
}