1、final
简单来说,当我们的程序中使用了final关键字后,那就表明这个东东是无法改变的。final常用的三种情况:基本类型数据,方法和类。
2、final基本类型数据
对于基本类型数据,final使其数值恒定不变;对于对象的引用,final使其引用恒定不变。即该引用一旦被初始化指向一个对象,就再无法把它改变让其指向另一个对象。但是,对于对象本身而言,它却是可以被修改的,java并未提供一个使任何对象恒定不变的途径。
一个既是static又是final的数据只占据一段不能改变的存储空间。
2、空白final
是指被声明为final但在声明的时候,没有初始化的。但是无论什么情况,编译器都会让其在使用之前必须被初始化。它的好处就是提供了一定的灵活性。比如可以在构造函数中队形进行初始化,这样可以做到根据对象不同初始化的值不同,同时保持了其值恒定不变的特性。
3、final参数
在参数列表中以生命的方式将参数指定为final,这意味着你在方法中无法更改参数引用所指向的对象。
4、final方法
在方法的前面加final关键字。使用它的原因是把方法锁定,防止任何继承它的类修改此方法,即覆盖此方法。
5、final类
当将某个类定义为final时,就表明你将不需要继承该类,也不允许其他类继承该类。这样做的原因是你不需要对该类做任何变动,处于安全的考虑,不希望他有子类