final关键字:通常指无法改变的,可能使用的场景有三种:数据、方法和类。
final数据:1、一个永不改变的编译时常量。
2、一个在运行时被初始化的值,而你不希望它被改变。
注意点:
1、Java中,常量必须是基本数据类型,并且以final表示,初始化时必须赋值。
2、一个既是static又是final的域只占据一段不能改变的存储空间。
3、final修饰的基本类型,使数值恒定不变;修饰的对象引用,使引用恒定不变,即一个引用被初始化指向一个对象,就无法再把它指向另一个对象,但是对象本身是可以改变的。
4、根据惯例,既是static又是final的域用大写表示,并使用下划线分隔单词
5、Java允许在参数列表中以声明的方式将参数指明为final,当参数被final修饰时,在方法中只能读参数,而无法修饰参数。
final方法
1、防止在继承时方法被覆盖。
2、提升效率(在使用hotspot技术之后,Java虚拟机不再需要使用final方法进行优化,虚拟机可以探测不合理的内嵌调用因此不推荐使用final进行性能优化)
final类
final类无法被继承,final类中的域可以是final或者非final的,但是final类中的所有方法都隐式的指向指定为final,因此无法覆 盖。