(長沙學院計算機工程與應用數學學院 湖南長沙 410075)
final修飾的類、變量和方法具有以下特性:
1. final修飾的類不能被繼承。
2. final修飾的方法不能被子類重寫。
3. final修飾的變量(成員變量和局部變量)是常量,只能賦值一次。
修飾變量是final用得最多的地方,數據類型有基本數據類型與引用數據類型,當final修飾基本數據類型時,被修飾的數據就相當于我們自己直接定義的常量,理解與應用與一致,但當修飾引用數據類型變量時,會有所不同,這是本文接下來要重點闡述的內容。首先了解一下final變量的基本語法:對于一個final變量,如果是基本數據類型的變量,則其數值一旦在初始化之后便不能更改;如果是引用類型的變量,則在對其初始化之后便不能再讓其指向另一個對象。 接下來舉個例子深入分析final關鍵字修飾引用類型數據的性能:

上述代碼運行結果為:

分析上述輸出結果可知,就final修飾基本數據而言,我們會得出第一個輸出結果應該也是false,因為final修飾變量時,就相當于常量。但輸出結果卻相反。實際第一個輸出結果為true,而第二個結果為fasle。這里面就是final變量和普通變量的區別了,當final變量是基本數據類型以及String類型時,如果在編譯期間能知道它的確切值,則編譯器會把它當做編譯期常量使用。也就是說在用到該final變量的地方,相當于直接訪問的這個常量,不需要在運行時確定。因此在上面的一段代碼中,由于變量b被final修飾,因此會被當做編譯器常量,所以在使用到b的地方會直接將變量b替換為它的值。……