在我們認識Java中的標示符的時候,知道了標示符的定義規則裏有一條:
Java自身提供的49個關鍵字不能作爲標示符定義。
那麼,所謂的關鍵字是什麼呢?關鍵字實際上是Java中的特殊保留字。
值得留意的就是特殊與保留兩個字。爲什麼呢?因爲通俗的來說,所謂的關鍵字事實上我們也可以理解爲標示符存在,
只不過這種標示符因爲Java自身爲其賦予了特殊的意義,所以作爲Java自身所保留的標示符存在。
自然的,我們也就不能再單獨的使用這些標示符作爲自定義的標示符。
我們同樣可以結合實際生活中的例子來幫助我們更形象的理解關鍵字的概念。
就如同我們在認識標示符時提到的概念一樣。我們可以將我們自己的姓名視作是我們自身的“標示符”。
只要符合中國的取名規範,我們可以用不同的漢字組成我們自己特有的姓名。
但是,如今可能沒有人會使用“北京”,“毛澤東”來作爲姓名了吧。(當然只是舉個例子,我也不知道是不是法律規定不能以這些作爲名字)
其原因就是因爲,這些類似的“標示符”在發展過程中,已經有了人們共識,特殊的意義。
當談論起“北京”,人們都認爲是在談論中國的首都,可能沒有人能意識到這是你的名字。
同理的,Java中的關鍵字已經被賦予了特殊的意義,如果你使用這些關鍵字作爲自己的標示符。
那麼,Java的編譯器在執行編譯工作時,它只會識別其本身代表的含義;並不能瞭解你自定義的意義;這樣就會造成混淆,從而編譯失敗。
Java中的關鍵字共有49個,下面就讓我們對這個49個不同的關鍵字,通過其“功能性”對其進行一個分類,從而分別瞭解它們的作用。
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html
訪問修飾符關鍵字
在具體的瞭解不同的訪問修飾符關鍵字的作用之前,我們首先應當知道什麼是訪問修飾符。
所謂的訪問修飾符,簡單來說就是指:用於對成員的訪問權限的限定的修飾符。那麼,接下來就讓我們看一看Java中具體有哪些不同的訪問修飾符。
- public :公共訪問修飾符
- private :私有訪問修飾符
- protected:受保護訪問修飾符
除此之外,實際還有另一種訪問權限:
friendly :默認訪問修飾符(不書寫任何訪問修飾符關鍵字的形式,friendly自身不是訪問修飾符,因爲這種訪問權限下,只有當前類和同一包中的類可以訪問,所以這種訪問權限又被稱爲包訪問權限)
除此之外,值得注意的就是:其餘幾種訪問修飾符都可以修飾任何成員,但是在Java中,類只能被聲明爲public或者默認訪問權限。
類、方法和變量修飾符關鍵字
- abstract :抽象修飾符。該修飾符修飾一個類時,代表此類爲一個抽象,該類不能被實例化。修飾一個方法時,代表該方法爲抽象方法,該方法必須被子類實現。
- class :定義類的關鍵字。
- extends :用於指出子類所擴展的父類的關鍵字。
- final :此關鍵字修飾的成員:類不能被繼承,方法不能被覆寫,變量不能被重新初始化。
- implements :用於指出類所實現的接口的關鍵字。
- interface :定義接口的關鍵字。
- native :該關鍵字修飾的方法意爲一個本地方法,代表該方法是用於平臺相關的語言(如C)實現的。
- new :通過該關鍵字調用構造函數實例化一個對象。
- static :靜態修飾符,被該關鍵字修飾的成員屬於一個類,而不屬於對象(實例)。
- strictfp :用於修飾類或方法,指出此類或方法中的所有表達式中的浮點數將嚴格遵循FP限制規則。
- synchronized :同步修飾符。用於多線程中,被修飾的方法或代碼塊同時只能被一個線程所訪問。
- transient :瞬態修飾符。常用於修飾關聯IO流操作的變量,代表防止被修飾的變量串行化。(舉例來說,例如使用一個輸出流將一個對象串行化輸出到一個外部文件時,被該修飾符修飾的變量的值將不會被串行化輸出到外部文件當中)
- volatile :指出變量可能改變,失去同步,因爲它被用在多個線程當中。
流程控制關鍵字
- break :從其所在的代碼塊中退出
- continue :停止循環內該語句後其餘代碼的執行,立馬開始該循環的下一次循環。
- case :根據switch測試結果執行某個代碼塊
- default :如果條件與swicth語句中任何一個case都不匹配,則執行這個代碼塊中的內容。
- do :先執行一次該代碼塊,之後再與while語句結合,判斷是否應該再次執行該代碼塊。
- else :如果if運算結果爲false,則執行該代碼塊中的內容
- for :爲代碼塊執行條件判斷
- if :執行邏輯判斷,判斷結果爲true則執行該代碼塊中的內容。
- Instanceof:確定對象是否是一個類、子類或接口的實例
- return :從方法返回
- switch :指出與case語句比較的變量
- while :當某個條件爲true時,重複的執行該代碼塊。
錯誤處理關鍵字
- catch :聲明用於捕獲處理異常的代碼塊
- finally:該關鍵字修飾的代碼塊通常跟在try-catch或try之後,意味當帶有異常處理時,程序流程如何,最終都將執行這個代碼塊中的內容
- throw :把異常向上傳遞到調用該方法的方法。
- throws :指出該方法將可能存在異常
- try :聲明將要執行單可能引發異常的代碼塊
- assert :斷言。計算條件表達式,以驗程序員的假設。
包控制關鍵字
- import :把包或類導入到代碼中
- package:指出當前類屬於哪個包
基本數據類型關鍵字
- boolean:布爾數據類型
- byte:字節數據類型
- char:字符數據類型
- short:短整型數據類型
- int:整型數據類型
- long:長整型數據類型
- float:單精度浮點數據類型
- double:雙精度浮點數據類型
變量關鍵字
- super:引用直接父類的引用變量
- this:引用當前對象的實例的引用變量
空返回類型關鍵字
- void:指出方法沒有任何返回類型
未使用的保留字
- goto
- const
以上就是Java中所有的49個關鍵字,我們會在實際應用中頻繁的接觸當中大部分的關鍵字,也有一小部分是實際開發中較少用到的。
我們可以通過實際開發更好的理解各個關鍵字的用法與效果,但必須要記住的就是:不要將這些關鍵字用作自定義的標示符。