JAVA編程思想之 ------ final關鍵字

一、概念

final在Java中是一個保留的關鍵字,可以聲明成員變量、方法、類以及本地變量。
final所修飾的內容一旦賦值之後就不會再被改變

理解:本質就是標識一個資源不能被修改

二、使用

1. final成員變量表示常量,只能被賦值一次,賦值後值不再改變。

final修飾一個成員變量(屬性),必須要顯示初始化。
這裏有兩種初始化方式,一種是在變量聲明的時候初始化;第二種方法是在聲明變量的時候不賦初值,但是要在這個變量所在的類的所有的構造函數中對這個變量賦初值。

2. final修飾方法

以下是摘自《JAVA編程思想》講述爲什麼使用final方法

“使用final方法的原因有兩個。第一個原因是把方法鎖定,以防任何繼承類修改它的含義;第二個原因是效率。在早期的Java實現版本中,會將final方法轉爲內嵌調用。但是如果方法過於龐大,可能看不到內嵌調用帶來的任何性能提升。在最近的Java版本中,不需要使用final方法進行這些優化了。”

3. final修飾類

當用final修飾一個類時,表明這個類不能被繼承。

三、好處

final方法會在編譯的過程中利用內嵌機制進行inline優化。inline優化是指:在編譯的時候直接調用函數代碼替換,而不是在運行時調用函數。inline需要在編譯的時候就知道最後要用哪個函數, 顯然,非final是不行的。非final方法可能在子類中被重寫,由於可能出現多態的情況,編譯器在編譯階段並不能確定將來調用方法的對象的真正類型,也就無法確定到底調用哪個方法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章