Java中的final关键字通常的指的是“这是无法改变的”。它可能被做为三种的修饰词.------数据,方法,类。

一 final数据

     这里又可分为两种:
              1.在修饰基本类型时,表示它是一个常量,在定义时必须给予赋值.特别的一个既是static又是final 的字段只占据一段不能改变的存储空间。
              2.在修饰对象或者数组时,它表示对对象或数组的引用恒定不变,然而对象本身却是可以修改的.

     空白final:声明为final但末给定初值的字段,但必须确保空白final在使用前被初始化,一般在构造方法完成。
     final参数:在方法的参数列表以声明的方式将参数指明为final,这意味着在方法里无法修改参数的引用所指向的对象。

二 final方法
      使用final使用的原因有两个:
           一. 把方法锁定,使得在子类(导出类)中不能修改它的含义。
           二.效率,一个final方法被调用时会转为内嵌调用,不会使用常规的压栈方式,使得运行效率较高,尤其是在方法体较简单的情况下,但也并不绝对。(与C++中的inline关键字类似)
          特别的:类中的所有private方法都隐式地指定为是final,所以在继承关系中不存在覆盖问题。

三 final类
    
     声明为final的类不能派生出了子类,也就是不能被继承,一个final类中的所有方法都隐式地指定为final.

    以上内容来自tij第6章。