在Java中,final关键字可以用来修饰类、方法和变量(包括成员变量和局部变量)。
1.修饰类
当用final修饰一个类时,表明这个类不能被继承。也就是说,如果一个类你永远不会让他被继承,就可以用final进行修饰。final类中的成员变量可以根据需要设为final,但是要注意final类中的所有成员方法都会被隐式地指定为final方法。
2.修饰方法
当用final修饰一个方法时,代表这个方法不可以被子类的方法重写。如果你认为一个方法的功能已经足够完整了,子类中不需要改变的话,你可以声明此方法为final。
final方法比非final方法要快,因为在编译的时候已经静态绑定了,不需要在运行时再动态绑定。
注:类的private方法会隐式地被指定为final方法。
3.修饰变量
修饰变量是final用得最多的地方对于一个final变量,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对象。但是引用变量所指向的对象中的内容还是可以改变的,因为使用final关键字修饰一个变量时,是指引用变量不能变。例如,
另外我们在编写代码是常常使用public static final常量来作为方法的传入参数,将这些反复创建的变量,定义为常量以减少内存开销。