???????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章。