1.修饰类
final修饰的类为最终类,不能被继承。
package abc;
// 无法被继承:
public final class Hello {
private int n = 0;
protected void hi(int t) {
long i = t;
}
}
2.修饰方法
final修饰的方法不能被重写,可以被继承和重载。
package abc;
public class Hello {
// 无法被覆写:
protected final void hi() {
}
}
3.修饰变量
final修饰的变量不能被修改,是个常量。
package abc;
public class Hello {
protected void hi(final int t) {
t = 1; // error!
}
}
4.final关键字的好处:
(1)final关键字提高了性能。JVM和Java应用都会缓存final变量。
(2)final变量可以安全的在多线程环境下进行共享,而不需要额外的同步开销。
(3)使用final关键字,JVM会对方法、变量及类进行优化