关键字final
final数据
-
对于一个final变量,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对象。再次赋值将引起编译报错。
-
当final变量是基本数据类型以及String类型时,如果在编译期间能知道它的确切值,则编译器会把它当做编译期常量使用。如果是String,编译器将取其值而非其引用。
-
无法在函数中更改final参数引用所指向的对象。
final方法
-
两个用处:锁定方法,防止继承,保证不被覆盖;效率:消除方法调用的开销(Java SE5/6+由于虚拟机的优化 利用final来提升效率已经没有意义了)。
-
所有的private方法都隐式的指定为final。
final类
-
当某个类整体定义为final时,就表明了不打算继承该类,final类内部所有函数都隐式指定为final。