final变量、final方法和final类
1、final变量
<不可以再改变该变量的值>
final关键字可用于变量声明,一旦该变量被设定,就不可以再改变该变量的值。通常,由final定义的变量为常量。例如,在类中定义PI值
2、final方法
<定义为final的方法不能被重写>
- 将方法定义为final类型可以防止任何子类修改该类的定义与实现方式;
- 同时定义为final的方法执行效率要高于非final方法。
- 一个定义为private的方法隐式被指定为final类型,这样无须将一个定义为private的方法再定义为final类型。(如果一个父类的某个方法被设置为private修饰符,子类将无法访问该方法,自然无法覆盖该方法)
3、final类
<定义为final的类不能被继承>
如果希望一个类不允许任何类继承,并且不允许其他人对这个类有任何改动,可以将这个类设置为final形式。(类中的所有方法都被隐式设置为final形式,但是final类中的成员变量可以被定义为final或非final形式。)
使用final关键字的好处:
(1)final关键字提高了性能。JVM和Java应用都会缓存final变量。
(2)final变量可以安全的在多线程环境下进行共享,而不需要额外的同步开销。
(3)使用final关键字,JVM会对方法、变量及类进行优化。