final可以修飾類、方法、成員變量
-
當final修飾類的時候,說明該類不能被繼承
-
當final修飾方法的時候,說明該方法不能被重寫
-
在早期,可能使用final修飾的方法,編譯器針對這些方法的所有調用都轉成內嵌調用,這樣提高效率(但到現在一般我們不會去管這事了,編譯器和JVM都越來越聰明瞭)
-
-
當final修飾成員變量時,有兩種情況:
-
如果修飾的是基本類型,說明這個變量的所代表數值永不能變(不能重新賦值)!
-
如果修飾的是引用類型,該變量所的引用不能變,但引用所代表的對象內容是可變的!
-
值得一說的是:並不是被final修飾的成員變量就一定是編譯期常量了。比如說我們可以寫出這樣的代碼:
private final int chang = new Randon().nextInt(20);