Java中一些特殊關鍵字
阿新 • • 發佈:2020-07-27
transient
被transient修飾的成員變數,在序列化的時候其值會被忽略,在被反序列化後, transient 變數的值被設為初始值, 如 int 型的是 0,物件型的是 null。
instanceof
它的作用是測試它左邊的物件是否是它右邊的類的例項,返回 boolean 的資料型別。
const
const是Java預留關鍵字,用於後期擴充套件用,用法跟final相似,不常用
static
- 靜態變數:用static表示變數的級別,一個類中的靜態變數,不屬於類的物件或者例項,靜態變數與所有的物件例項共享,因此他們不具執行緒安全性。
- 靜態方法:與靜態變數一樣,靜態方法是屬於類而不是例項。一個靜態方法只能使用靜態變數和呼叫靜態方法。通常靜態方法通常用於想給其他的類使用而不需要建立例項。
- 靜態程式碼塊:Java的靜態塊是一組指令在類裝載的時候在記憶體中由Java ClassLoader執行。靜態塊常用於初始化類的靜態變數。大多時候還用於在類裝載時候建立靜態資源。Java不允許在靜態塊中使用非靜態變數。一個類中可以有多個靜態塊,儘管這似乎沒有什麼用。靜態塊只在類裝載入記憶體時,執行一次。
final
- final變數:如果將變數設定為final,則不能更改final變數的值(它將是常量)。
- final方法:如果任何方法宣告為final,則不能覆蓋它。
- final類:如果把任何一個類宣告為final,則不能繼承它。
synchronized
synchronized
是Java提供的一個併發控制的關鍵字。主要有兩種用法,分別是同步方法和同步程式碼塊。被synchronized
synchronized
,是Java中用於解決併發情況下資料同步訪問的一個很重要的關鍵字。當我們想要保證一個共享資源在同一時間只會被一個執行緒訪問到時,我們可以在程式碼中使用synchronized
關鍵字對類或者物件加鎖。synchronized
可以保證原子性、有序性和可見性。
volatile
volatile
通常被比喻成"輕量級的synchronized
",也是Java併發程式設計中比較重要的一個關鍵字。和synchronized
不同,volatile
是一個變數修飾符,只能用來修飾變數。無法修飾方法及程式碼塊等。volatile
只能保證有序性和可見性。在以下兩個場景中可以使用volatile
synchronized
:
1、運算結果並不依賴變數的當前值,或者能夠確保只有單一的執行緒會修改變數的值。
2、變數不需要與其他狀態變數共同參與不變約束。