定义:Java中,final表示最终,表示是最终的形态,不可以更改的意思
下面表格,表示final在不同类型下起不同作用:
final的作用
结果
修饰类
不可继承,不可修改,注意指的是引用不能修改,引用指向的对象还是可以修改的
修饰方法
可以被继承,但不可以被重写
修饰值
只能初始化的时候赋值,其他时间不能修改
修饰类:表示该类不能被继承,即不能拥有子类
修饰方法:表示该方法不能被子类重写。(Java中重写又叫方法覆盖,就是子类重写一个结构和父类一模一样的方法,具体实现按照自己的来)
修饰值:表示值不可以改变,也不能继承,此时的变量我们一般称之为常量
这样设计的好处主要有两点:
提高性能,JVM会缓存final修饰的变量
可以安全的在多线程变量下共享,不需要额外的同步开销