1.final在Java中是一个保留的关键字,可以声明成员变量、方法、类以及本地变量。一旦你将引用声明作final,你将不能改变这个引用。
2.(静态绑定)final也可以声明方法。方法前面加上final关键字,代表这个方法不可以被子类的方法重写。final方法比非final方法要快,因为在编译的时候已经静态绑定了,不需要在运行时再动态绑定。
3.使用final来修饰的类不能被继承。
4.接口中声明的所有变量本身是final的
5.final和abstract这两个关键字互斥,final类就不可能是abstract的。
6.没有在声明时初始化final变量的称为空白final变量(blank final variable),它们必须在构造器中初始化,或者调用this()初始化
7.对于集合对象声明为final指的是引用不能被更改,但是你可以向其中增加,删除或者改变内容
final关键字的好处
- final关键字提高了性能。JVM和Java应用都会缓存final变量。
- final变量可以安全的在多线程环境下进行共享,而不需要额外的同步开销。
- 使用final关键字,JVM会对方法、变量及类进行优化。