深入理解Java中的final關鍵字

桃子紅了吶發表於2017-11-26

Java中的final關鍵字非常重要,它可以應用於類、方法以及變數。這篇文章中我將帶你看看什麼是final關鍵字?將變數,方法和類宣告為final代表了什麼?使用final的好處是什麼?最後也有一些使用final關鍵字的例項。final經常和static一起使用來宣告常量,你也會看到final是如何改善應用效能的。

final關鍵字的含義?

final在Java中是一個保留的關鍵字,可以宣告成員變數、方法、類以及本地變數。一旦你將引用宣告作final,你將不能改變這個引用了,編譯器會檢查程式碼,如果你試圖將變數再次初始化的話,編譯器會報編譯錯誤。

什麼是final變數?

凡是對成員變數或者本地變數(在方法中的或者程式碼塊中的變數稱為本地變數)宣告為final的都叫作final變數。final變數經常和static關鍵字一起使用,作為常量。

final變數是隻讀的。

什麼是final方法?

final也可以宣告方法。方法前面加上final關鍵字,代表這個方法不可以被子類的方法重寫。如果你認為一個方法的功能已經足夠完整了,子類中不需要改變的話,你可以宣告此方法為final。final方法比非final方法要快,因為在編譯的時候已經靜態繫結了,不需要在執行時再動態繫結。

什麼是final類?

使用final來修飾的類叫作final類。final類通常功能是完整的,它們不能被繼承。Java中有許多類是final的,譬如String, Interger以及其他包裝類。

final關鍵字的好處

下面總結了一些使用final關鍵字的好處

  1. final關鍵字提高了效能。JVM和Java應用都會快取final變數。
  2. final變數可以安全的在多執行緒環境下進行共享,而不需要額外的同步開銷。
  3. 使用final關鍵字,JVM會對方法、變數及類進行優化。

不可變類

建立不可變類要使用final關鍵字。不可變類是指它的物件一旦被建立了就不能被更改了。String是不可變類的代表。不可變類有很多好處,譬如它們的物件是隻讀的,可以在多執行緒環境下安全的共享,不用額外的同步開銷等等。

本文轉自TBHacker部落格園部落格,原文連結:http://www.cnblogs.com/jiqing9006/p/7742127.html,如需轉載請自行聯絡原作者


相關文章