匯智動力java專題--Java關鍵字詳解

解析:
1.訪問修飾符(訪問控制符)
1)public公共的
public關鍵字是可以應用于類、方法或字段(在類中聲明的變量)的訪問控制修飾符。可能只會在其他任何類或包中引用public類、方法或字段。
2)protected受保護的
protected 關鍵字是可以應用于類、方法或字段(在類中聲明的變量)的訪問控制修飾符。可以在聲明protected類、方法或字段的類、同一個包中的其他任何類以及任何子類(無論子類是在哪個包中聲明的)中引用這些類、方法或字段。
3)private私有的
private 關鍵字是訪問控制修飾符,可以應用于類、方法或字段(在類中聲明的變量)。只能在聲明private類(不可用于普通類,只用于內部類)、方法或字段的類中引用這些類、方法或字段。在類的外部或者對于子類而言,它們是不可見的,不能直接使用。
4)默認的不使用任何關鍵字
不使用任何修飾符聲明的屬性和方法,對同一個包內的類是可見的。接口里的變量都隱式聲明為public static final,而接口里的方法默認情況下訪問權限為public。
2.類、方法和變量修飾符
1)abstract聲明抽象
abstract關鍵字可以修改類或方法。abstract類可以擴展(增加子類),但不能直接實例化。abstract方法不在聲明它的類中實現,但必須在某個子類中重寫(除非子類也abstract類)。采用abstract方法的類本來就是抽象類,并且必須聲明為abstract。
2)class類
class關鍵字用來聲明新的java類,該類是相關變量和/或方法的集合。類是面向對象的程序設 計方法的基本構造單位。類通常代表某種實際實體,如幾何形狀或人。類是對象的模板。每個對象都是類的一個實例。要使用類,通常使用 new 操作符將類的對象實例化,然后調用類的方法來訪問類的功能。
3)extends繼承、擴展
extends關鍵字用在class或interface聲明中,用于指示所聲明的類或接口是其名稱后跟有extends關鍵字的類或接口的子類。子類繼承父類的所有變量和方法。子類可以重寫父類的任何非final方法。一個類只能擴展一個其他類。
4)final 最終的,最后的
final關鍵字可以應用于類,以指示不能擴展該類(不能有子類)。final關鍵字可以應用于方法,以指示在子類中不能重寫此方法。一個類不能同時是abstract 又是final。abstract 意味著必須擴展類,final 意味著不能擴展類。一個方法不能同時是abstract又是final。abstract意味著必須重寫方法,final意味著不能重寫方法。
5)implements實現
implements 關鍵字在class聲明中使用,以指示所聲明的類提供了在implements關鍵字后面的名稱所指定的接口中所聲明的所有方法的實現。類必須提供在接口中所聲明的所有方法實現。一個類可以實現多個接口。
6) interface接口
interface關鍵字用來聲明新的Java接口,接口是方法的集合。
接口是Java語言的一項強大功能。任何類都可聲明它實現一個或多個接口,這意味著它實現在這些接口中所定義的所有方法。
實現了接口的任何類都必須提供在該接口中的所有方法的實現。一個類可以實現多個接口。
7) native本地
native關鍵字可以應用于方法,以指示該方法是用java以外的語言實現的。
8) new 新創建
new關鍵字用于創建類的新實例。
new關鍵字后面的參數必須是類名,并且類名的后面必須是一組構造方法參數(必須帶括號)。
9) static靜態
static關鍵字可以應用于內部類(在另一個類中定義的類)、方法或字段(類的成員變量)。
通常,static關鍵字意味著應用它的實體在聲明該實體的類的任何特定實例外部可用。
static(內部)類可以被其他類實例化和引用(即使它是頂級類)。
static字段(類的成員變量)在類的所有實例中只存在一次。
可以從類的外部調用static方法,而不用首先實例化該類。這樣的引用始終包括類名作為方法調用的限定符。
10) synchronized線程、同步
synchronized關鍵字可以應用于方法或語句塊,并為一次只應由一個線程執行的關鍵代碼段提供保護。
synchronized關鍵字可防止代碼的關鍵代碼段一次被多個線程執行。
如果應用于靜態方法,那么,當該方法一次由一個線程執行時,整個類將被鎖定。
如果應用于實例方法,那么,當該方法一次由一個線程訪問時,該實例將被鎖定。
如果應用于對象或數組,當關聯的代碼塊一次由一個線程執行時,對象或數組將被鎖定。
3.程序控制語句
1) break跳出,中斷
break關鍵字用于提前退出 for、while 或 do 循環,或者在 switch 語句中用來結束 case 塊。
break總是退出最深層的 while、for、do 或 switch 語句。
2) continue繼續
continue關鍵字用來跳轉到 for、while 或 do 循環的下一個迭代。
continue總是跳到最深層 while、for 或 do 語句的下一個迭代。
3)return返回
return關鍵字會導致方法返回到調用它的方法,從而傳遞與返回方法的返回類型匹配的值。
如果方法具有非void的返回類型,return語句必須具有相同或兼容類型的參數。
返回值兩側的括號是可選的。
4)while循環
while關鍵字用于指定一個只要條件為真就會重復的循環。
5)if 如果
if關鍵字指示有條件地執行代碼塊。條件的計算結果必須是布爾值。
if語句可以有可選的else子句,該子句包含條件為false時將執行的代碼。
包含boolean操作數的表達式只能包含boolean操作數。
6)else否則
else關鍵字總是在 if-else 語句中與 if 關鍵字結合使用。else 子句是可選的,如果 if 條件為false,則執行該子句。
7)for 循環
for關鍵字用于指定一個在每次迭代結束前檢查其條件的循環。
控件流進入for語句時,將執行一次initialize語句。
每次執行循環體之前將計算condition的結果。如果condition為true,則執行循環體。
每次執行循環體之后,在計算下一個迭代的condition之前,將執行increment語句。
8) instanceof實例
instanceof關鍵字用來確定對象所屬的類。
9) switch觀察
switch語句用于基于某個表達式選擇執行多個代碼塊中的某一個。
switch條件的計算結果必須等于byte、char、short 或 int。
case塊沒有隱式結束點。break語句通常在每個case塊末尾使用,用于退出switch語句。
如果沒有break語句,執行流將進入所有后面的case和/或default塊。
10)case返回觀察里的結果
case用來標記switch語句中的每個分支。
case塊沒有隱式結束點。break語句通常在每個case塊末尾使用,用于退出switch語句。
如果沒有break語句,執行流將進入所有后面的case和/或default塊。
11)default默認
default關鍵字用來標記switch語句中的默認分支。
default塊沒有隱式結束點。break語句通常在每個case或default塊的末尾使用,以便在完成塊時退出switch語句。
如果沒有default語句,其參數與任何case塊都不匹配的switch語句將不執行任何操作。
4.錯誤處理
1)try捕獲異常
try關鍵字用于包含可能引發異常的語句塊。
每個try塊都必須至少有一個catch或finally子句。
如果某個特定異常類未被任何catch子句處理,該異常將沿著調用棧遞歸地傳播到下一個封閉try塊。如果任何封閉try塊都未捕獲到異常,Java解釋器將
退出,并顯示錯誤消息和堆棧跟蹤信息。
2)catch處理異常
catch關鍵字用來在try-catch或try-catch-finally語句中定義異常處理塊。
開始和結束標記 { 和 } 是catch子句語法的一部分,即使該子句只包含一個語句,也不能省略這兩個標記。
每個try塊都必須至少有一個catch或finally子句。
如果某個特定異常類未被任何catch子句處理,該異常將沿著調用棧遞歸地傳播到下一個封閉try塊。如果任何封閉try塊都未捕獲到異常,Java解釋器將
退出,并顯示錯誤消息和堆棧跟蹤信息。
3)finally最后
finally子句是try...catch...finally 必然會執行的代碼塊
4)throw拋出一個異常對象
throw關鍵字用于引發異常。
throw語句將java.lang.Throwable作為參數。Throwable在調用棧中向上傳播,直到被適當的catch塊捕獲。
引發非RuntimeException異常的任何方法還必須在方法聲明中使用throws修飾符來聲明它引發的異常。
5)throws聲明一個異常可能被拋出
throws關鍵字可以應用于方法,以便指出方法引發了特定類型的異常。
throws關鍵字將逗號分隔的java.lang.Throwables列表作為參數。
引發非RuntimeException異常的任何方法還必須在方法聲明中使用throws修飾符來聲明它引發的異常。
要在try-catch塊中包含帶throws子句的方法的調用,必須提供該方法的調用者。
5.包相關
1)import
import關鍵字使一個包中的一個或所有類在當前Java源文件中可見。可以不使用完全限定的類名來引用導入的類。
當多個包包含同名的類時,許多java程序員只使用特定的import語句(沒有“*”)來避免不確定性。
2)package包
package關鍵字指定在Java源文件中聲明的類所駐留的Java包。
package語句(如果出現)必須是Java源文件中的第一個非注釋性文本。
例:java.lang.Object。
如果Java源文件不包含package語句,在該文件中定義的類將位于“默認包”中。請注意,不能從非默認包中的類引用默認包中的類。
6.基本類型
1)boolean布爾型
boolean是Java原始類型。boolean變量的值可以是true或false。
boolean變量只能以true或false作為值。boolean不能與數字類型相互轉換。
包含boolean操作數的表達式只能包含boolean操作數。
Boolean類是boolean原始類型的包裝對象類。
2) byte字節型
byte是Java原始類型。byte可存儲在 [-128, 127] 范圍以內的整數值。
Byte類是byte原始類型的包裝對象類。它定義代表此類型的值的范圍的MIN_VALUE和MAX_VALUE常量。
Java中的所有整數值都是32位的int值,除非值后面有l或 L(如 235L),這表示該值應解釋為long。
3)char字符型
char是Java原始類型。char變量可以存儲一個Unicode字符。
Character類包含一些可用來處理char變量的static方法,這些方法包括isDigit()、isLetter()、isWhitespace() 和 toUpperCase()。
char值沒有符號。
4)double雙精度
double是Java原始類型。double變量可以存儲雙精度浮點值。
由于浮點數據類型是實際數值的近似值,因此,一般不要對浮點數值進行是否相等的比較。
Java浮點數值可代表無窮大和 NaN(非數值)。Double包裝對象類用來定義常量 MIN_VALUE、MAX_VALUE、NEGATIVE_INFINITY、POSITIVE_INFINITY和NaN。
5)float浮點
float是Java原始類型。float變量可以存儲單精度浮點值。
使用此關鍵字時應遵循下列規則:
Java中的浮點文字始終默認為雙精度。要指定單精度文字值,應在數值后加上f或F,如0.01f。
由于浮點數據類型是實際數值的近似值,因此,一般不要對浮點數值進行是否相等的比較。
Java浮點數值可代表無窮大和 NaN(非數值)。Float包裝對象類用來定義常量MIN_VALUE、MAX_VALUE、NEGATIVE_INFINITY、POSITIVE_INFINITY和NaN。
6)int整型
int是Java原始類型。int變量可以存儲32位的整數值。
Integer類是int原始類型的包裝對象類。它定義代表此類型的值的范圍的 MIN_VALUE 和MAX_VALUE常量。
7)long長整型
long是Java原始類型。long變量可以存儲64位的帶符號整數。
Long類是long原始類型的包裝對象類。它定義代表此類型的值的范圍的MIN_VALUE和MAX_VALUE常量。
8)short短整型
short是Java原始類型。short變量可以存儲16位帶符號的整數。
Short類是short原始類型的包裝對象類。它定義代表此類型的值的范圍的 MIN_VALUE和MAX_VALUE 常量。
9)null 空
null是Java的保留字,表示無值。
將null賦給非原始變量相當于釋放該變量先前所引用的對象。
不能將null賦給原始類型(byte、short、int、long、char、float、double、boolean)變量。
10)true真
true關鍵字表示boolean變量的兩個合法值中的一個。
11)false假
false關鍵字代表boolean變量的兩個合法值之一。
7.變量引用
1)super父類,超類
super關鍵字用于引用使用該關鍵字的類的超類。
作為獨立語句出現的super表示調用超類的構造方法。
super.
2)this本類
this關鍵字用于引用當前實例。
當引用可能不明確時,可以使用this關鍵字來引用當前的實例。
3)void無返回值
void關鍵字表示null類型。
void可以用作方法的返回類型,以指示該方法不返回值。
8.保留字
正確識別java語言的關鍵字(keyword)和保留字(reserved word)是十分重要的。Java的關鍵字對java的編譯器有特殊的意義,他們用來表示一種數據類型,或者表示程序的結構等。保留字是為java,預留的關鍵字,他們雖然現在沒有作為關鍵字,但在以后的升級版本中有可能作為關鍵字。
識別java語言的關鍵字,不要和其他語言如c/c++的關鍵字混淆。
const和goto是java的保留字,所有的關鍵字都是小寫。
1) goto跳轉
goto保留關鍵字,但無任何作用。結構化程序設計完全不需要goto語句即可完成各種流程,而goto語句的使用往往會使程序的可讀性降低,所以Java不允許goto跳轉。
