解析:

1.訪問(wèn)修飾符(訪問(wèn)控制符)

1)public公共的

public關(guān)鍵字是可以應(yīng)用于類、方法或字段(在類中聲明的變量)的訪問(wèn)控制修飾符。可能只會(huì)在其他任何類或包中引用public類、方法或字段。

2)protected受保護(hù)的

protected 關(guān)鍵字是可以應(yīng)用于類、方法或字段(在類中聲明的變量)的訪問(wèn)控制修飾符。可以在聲明protected類、方法或字段的類、同一個(gè)包中的其他任何類以及任何子類(無(wú)論子類是在哪個(gè)包中聲明的)中引用這些類、方法或字段。

3)private私有的

private 關(guān)鍵字是訪問(wèn)控制修飾符,可以應(yīng)用于類、方法或字段(在類中聲明的變量)。只能在聲明private類(不可用于普通類,只用于內(nèi)部類)、方法或字段的類中引用這些類、方法或字段。在類的外部或者對(duì)于子類而言,它們是不可見(jiàn)的,不能直接使用。

4)默認(rèn)的不使用任何關(guān)鍵字

不使用任何修飾符聲明的屬性和方法,對(duì)同一個(gè)包內(nèi)的類是可見(jiàn)的。接口里的變量都隱式聲明為public static final,而接口里的方法默認(rèn)情況下訪問(wèn)權(quán)限為public。

2.類、方法和變量修飾符

1)abstract聲明抽象

abstract關(guān)鍵字可以修改類或方法。abstract類可以擴(kuò)展(增加子類),但不能直接實(shí)例化。abstract方法不在聲明它的類中實(shí)現(xiàn),但必須在某個(gè)子類中重寫(除非子類也abstract類)。采用abstract方法的類本來(lái)就是抽象類,并且必須聲明為abstract。

2)class類

class關(guān)鍵字用來(lái)聲明新的java類,該類是相關(guān)變量和/或方法的集合。類是面向?qū)ο蟮某绦蛟O(shè) 計(jì)方法的基本構(gòu)造單位。類通常代表某種實(shí)際實(shí)體,如幾何形狀或人。類是對(duì)象的模板。每個(gè)對(duì)象都是類的一個(gè)實(shí)例。要使用類,通常使用 new  操作符將類的對(duì)象實(shí)例化,然后調(diào)用類的方法來(lái)訪問(wèn)類的功能。

3)extends繼承、擴(kuò)展

extends關(guān)鍵字用在class或interface聲明中,用于指示所聲明的類或接口是其名稱后跟有extends關(guān)鍵字的類或接口的子類。子類繼承父類的所有變量和方法。子類可以重寫父類的任何非final方法。一個(gè)類只能擴(kuò)展一個(gè)其他類。

4)final 最終的,最后的

final關(guān)鍵字可以應(yīng)用于類,以指示不能擴(kuò)展該類(不能有子類)。final關(guān)鍵字可以應(yīng)用于方法,以指示在子類中不能重寫此方法。一個(gè)類不能同時(shí)是abstract 又是final。abstract 意味著必須擴(kuò)展類,final 意味著不能擴(kuò)展類。一個(gè)方法不能同時(shí)是abstract又是final。abstract意味著必須重寫方法,final意味著不能重寫方法。

5)implements實(shí)現(xiàn)

implements 關(guān)鍵字在class聲明中使用,以指示所聲明的類提供了在implements關(guān)鍵字后面的名稱所指定的接口中所聲明的所有方法的實(shí)現(xiàn)。類必須提供在接口中所聲明的所有方法實(shí)現(xiàn)。一個(gè)類可以實(shí)現(xiàn)多個(gè)接口。

6) interface接口

interface關(guān)鍵字用來(lái)聲明新的Java接口,接口是方法的集合。

接口是Java語(yǔ)言的一項(xiàng)強(qiáng)大功能。任何類都可聲明它實(shí)現(xiàn)一個(gè)或多個(gè)接口,這意味著它實(shí)現(xiàn)在這些接口中所定義的所有方法。

實(shí)現(xiàn)了接口的任何類都必須提供在該接口中的所有方法的實(shí)現(xiàn)。一個(gè)類可以實(shí)現(xiàn)多個(gè)接口。

7) native本地

native關(guān)鍵字可以應(yīng)用于方法,以指示該方法是用java以外的語(yǔ)言實(shí)現(xiàn)的。

8) new 新創(chuàng)建

new關(guān)鍵字用于創(chuàng)建類的新實(shí)例。

new關(guān)鍵字后面的參數(shù)必須是類名,并且類名的后面必須是一組構(gòu)造方法參數(shù)(必須帶括號(hào))。

9) static靜態(tài)

static關(guān)鍵字可以應(yīng)用于內(nèi)部類(在另一個(gè)類中定義的類)、方法或字段(類的成員變量)。

通常,static關(guān)鍵字意味著應(yīng)用它的實(shí)體在聲明該實(shí)體的類的任何特定實(shí)例外部可用。

static(內(nèi)部)類可以被其他類實(shí)例化和引用(即使它是頂級(jí)類)。

static字段(類的成員變量)在類的所有實(shí)例中只存在一次。

可以從類的外部調(diào)用static方法,而不用首先實(shí)例化該類。這樣的引用始終包括類名作為方法調(diào)用的限定符。

10) synchronized線程、同步

synchronized關(guān)鍵字可以應(yīng)用于方法或語(yǔ)句塊,并為一次只應(yīng)由一個(gè)線程執(zhí)行的關(guān)鍵代碼段提供保護(hù)。

synchronized關(guān)鍵字可防止代碼的關(guān)鍵代碼段一次被多個(gè)線程執(zhí)行。

如果應(yīng)用于靜態(tài)方法,那么,當(dāng)該方法一次由一個(gè)線程執(zhí)行時(shí),整個(gè)類將被鎖定。

如果應(yīng)用于實(shí)例方法,那么,當(dāng)該方法一次由一個(gè)線程訪問(wèn)時(shí),該實(shí)例將被鎖定。

如果應(yīng)用于對(duì)象或數(shù)組,當(dāng)關(guān)聯(lián)的代碼塊一次由一個(gè)線程執(zhí)行時(shí),對(duì)象或數(shù)組將被鎖定。

3.程序控制語(yǔ)句

1) break跳出,中斷

break關(guān)鍵字用于提前退出 for、while 或 do 循環(huán),或者在 switch 語(yǔ)句中用來(lái)結(jié)束 case 塊。

break總是退出最深層的 while、for、do 或 switch 語(yǔ)句。

2) continue繼續(xù)

continue關(guān)鍵字用來(lái)跳轉(zhuǎn)到 for、while 或 do 循環(huán)的下一個(gè)迭代。

continue總是跳到最深層 while、for 或 do 語(yǔ)句的下一個(gè)迭代。

3)return返回

return關(guān)鍵字會(huì)導(dǎo)致方法返回到調(diào)用它的方法,從而傳遞與返回方法的返回類型匹配的值。

如果方法具有非void的返回類型,return語(yǔ)句必須具有相同或兼容類型的參數(shù)。

返回值兩側(cè)的括號(hào)是可選的。

4)while循環(huán)

while關(guān)鍵字用于指定一個(gè)只要條件為真就會(huì)重復(fù)的循環(huán)。

5)if 如果

if關(guān)鍵字指示有條件地執(zhí)行代碼塊。條件的計(jì)算結(jié)果必須是布爾值。

if語(yǔ)句可以有可選的else子句,該子句包含條件為false時(shí)將執(zhí)行的代碼。

包含boolean操作數(shù)的表達(dá)式只能包含boolean操作數(shù)。

6)else否則

else關(guān)鍵字總是在 if-else 語(yǔ)句中與 if 關(guān)鍵字結(jié)合使用。else 子句是可選的,如果 if 條件為false,則執(zhí)行該子句。

7)for 循環(huán)

for關(guān)鍵字用于指定一個(gè)在每次迭代結(jié)束前檢查其條件的循環(huán)。

控件流進(jìn)入for語(yǔ)句時(shí),將執(zhí)行一次initialize語(yǔ)句。

每次執(zhí)行循環(huán)體之前將計(jì)算condition的結(jié)果。如果condition為true,則執(zhí)行循環(huán)體。

每次執(zhí)行循環(huán)體之后,在計(jì)算下一個(gè)迭代的condition之前,將執(zhí)行increment語(yǔ)句。

8) instanceof實(shí)例

instanceof關(guān)鍵字用來(lái)確定對(duì)象所屬的類。

9) switch觀察

switch語(yǔ)句用于基于某個(gè)表達(dá)式選擇執(zhí)行多個(gè)代碼塊中的某一個(gè)。

switch條件的計(jì)算結(jié)果必須等于byte、char、short 或 int。

case塊沒(méi)有隱式結(jié)束點(diǎn)。break語(yǔ)句通常在每個(gè)case塊末尾使用,用于退出switch語(yǔ)句。

如果沒(méi)有break語(yǔ)句,執(zhí)行流將進(jìn)入所有后面的case和/或default塊。

10)case返回觀察里的結(jié)果

case用來(lái)標(biāo)記switch語(yǔ)句中的每個(gè)分支。

case塊沒(méi)有隱式結(jié)束點(diǎn)。break語(yǔ)句通常在每個(gè)case塊末尾使用,用于退出switch語(yǔ)句。

如果沒(méi)有break語(yǔ)句,執(zhí)行流將進(jìn)入所有后面的case和/或default塊。

11)default默認(rèn)

default關(guān)鍵字用來(lái)標(biāo)記switch語(yǔ)句中的默認(rèn)分支。

default塊沒(méi)有隱式結(jié)束點(diǎn)。break語(yǔ)句通常在每個(gè)case或default塊的末尾使用,以便在完成塊時(shí)退出switch語(yǔ)句。

如果沒(méi)有default語(yǔ)句,其參數(shù)與任何case塊都不匹配的switch語(yǔ)句將不執(zhí)行任何操作。

4.錯(cuò)誤處理

1)try捕獲異常

try關(guān)鍵字用于包含可能引發(fā)異常的語(yǔ)句塊。

每個(gè)try塊都必須至少有一個(gè)catch或finally子句。

如果某個(gè)特定異常類未被任何catch子句處理,該異常將沿著調(diào)用棧遞歸地傳播到下一個(gè)封閉try塊。如果任何封閉try塊都未捕獲到異常,Java解釋器將

退出,并顯示錯(cuò)誤消息和堆棧跟蹤信息。

2)catch處理異常

catch關(guān)鍵字用來(lái)在try-catch或try-catch-finally語(yǔ)句中定義異常處理塊。

開(kāi)始和結(jié)束標(biāo)記 { 和 } 是catch子句語(yǔ)法的一部分,即使該子句只包含一個(gè)語(yǔ)句,也不能省略這兩個(gè)標(biāo)記。

每個(gè)try塊都必須至少有一個(gè)catch或finally子句。

如果某個(gè)特定異常類未被任何catch子句處理,該異常將沿著調(diào)用棧遞歸地傳播到下一個(gè)封閉try塊。如果任何封閉try塊都未捕獲到異常,Java解釋器將

退出,并顯示錯(cuò)誤消息和堆棧跟蹤信息。

3)finally最后

finally子句是try...catch...finally 必然會(huì)執(zhí)行的代碼塊

4)throw拋出一個(gè)異常對(duì)象

throw關(guān)鍵字用于引發(fā)異常。

throw語(yǔ)句將java.lang.Throwable作為參數(shù)。Throwable在調(diào)用棧中向上傳播,直到被適當(dāng)?shù)腸atch塊捕獲。

引發(fā)非RuntimeException異常的任何方法還必須在方法聲明中使用throws修飾符來(lái)聲明它引發(fā)的異常。

5)throws聲明一個(gè)異常可能被拋出

throws關(guān)鍵字可以應(yīng)用于方法,以便指出方法引發(fā)了特定類型的異常。

throws關(guān)鍵字將逗號(hào)分隔的java.lang.Throwables列表作為參數(shù)。

引發(fā)非RuntimeException異常的任何方法還必須在方法聲明中使用throws修飾符來(lái)聲明它引發(fā)的異常。

要在try-catch塊中包含帶throws子句的方法的調(diào)用,必須提供該方法的調(diào)用者。

5.包相關(guān)

1)import

import關(guān)鍵字使一個(gè)包中的一個(gè)或所有類在當(dāng)前Java源文件中可見(jiàn)。可以不使用完全限定的類名來(lái)引用導(dǎo)入的類。

當(dāng)多個(gè)包包含同名的類時(shí),許多java程序員只使用特定的import語(yǔ)句(沒(méi)有“*”)來(lái)避免不確定性。

2)package包

package關(guān)鍵字指定在Java源文件中聲明的類所駐留的Java包。

package語(yǔ)句(如果出現(xiàn))必須是Java源文件中的第一個(gè)非注釋性文本。

例:java.lang.Object。

如果Java源文件不包含package語(yǔ)句,在該文件中定義的類將位于“默認(rèn)包”中。請(qǐng)注意,不能從非默認(rèn)包中的類引用默認(rèn)包中的類。

6.基本類型

1)boolean布爾型

boolean是Java原始類型。boolean變量的值可以是true或false。

boolean變量只能以true或false作為值。boolean不能與數(shù)字類型相互轉(zhuǎn)換。

包含boolean操作數(shù)的表達(dá)式只能包含boolean操作數(shù)。

Boolean類是boolean原始類型的包裝對(duì)象類。

2) byte字節(jié)型

byte是Java原始類型。byte可存儲(chǔ)在 [-128, 127] 范圍以內(nèi)的整數(shù)值。

Byte類是byte原始類型的包裝對(duì)象類。它定義代表此類型的值的范圍的MIN_VALUE和MAX_VALUE常量。

Java中的所有整數(shù)值都是32位的int值,除非值后面有l(wèi)或 L(如 235L),這表示該值應(yīng)解釋為long。

3)char字符型

char是Java原始類型。char變量可以存儲(chǔ)一個(gè)Unicode字符。

Character類包含一些可用來(lái)處理char變量的static方法,這些方法包括isDigit()、isLetter()、isWhitespace() 和 toUpperCase()。

char值沒(méi)有符號(hào)。

4)double雙精度

double是Java原始類型。double變量可以存儲(chǔ)雙精度浮點(diǎn)值。

由于浮點(diǎn)數(shù)據(jù)類型是實(shí)際數(shù)值的近似值,因此,一般不要對(duì)浮點(diǎn)數(shù)值進(jìn)行是否相等的比較。

Java浮點(diǎn)數(shù)值可代表無(wú)窮大和 NaN(非數(shù)值)。Double包裝對(duì)象類用來(lái)定義常量 MIN_VALUE、MAX_VALUE、NEGATIVE_INFINITY、POSITIVE_INFINITY和NaN。

5)float浮點(diǎn)

float是Java原始類型。float變量可以存儲(chǔ)單精度浮點(diǎn)值。

使用此關(guān)鍵字時(shí)應(yīng)遵循下列規(guī)則:

Java中的浮點(diǎn)文字始終默認(rèn)為雙精度。要指定單精度文字值,應(yīng)在數(shù)值后加上f或F,如0.01f。

由于浮點(diǎn)數(shù)據(jù)類型是實(shí)際數(shù)值的近似值,因此,一般不要對(duì)浮點(diǎn)數(shù)值進(jìn)行是否相等的比較。

Java浮點(diǎn)數(shù)值可代表無(wú)窮大和 NaN(非數(shù)值)。Float包裝對(duì)象類用來(lái)定義常量MIN_VALUE、MAX_VALUE、NEGATIVE_INFINITY、POSITIVE_INFINITY和NaN。

6)int整型

int是Java原始類型。int變量可以存儲(chǔ)32位的整數(shù)值。

Integer類是int原始類型的包裝對(duì)象類。它定義代表此類型的值的范圍的 MIN_VALUE 和MAX_VALUE常量。

7)long長(zhǎng)整型

long是Java原始類型。long變量可以存儲(chǔ)64位的帶符號(hào)整數(shù)。

Long類是long原始類型的包裝對(duì)象類。它定義代表此類型的值的范圍的MIN_VALUE和MAX_VALUE常量。

8)short短整型

short是Java原始類型。short變量可以存儲(chǔ)16位帶符號(hào)的整數(shù)。

Short類是short原始類型的包裝對(duì)象類。它定義代表此類型的值的范圍的 MIN_VALUE和MAX_VALUE 常量。

9)null 空

null是Java的保留字,表示無(wú)值。

將null賦給非原始變量相當(dāng)于釋放該變量先前所引用的對(duì)象。

不能將null賦給原始類型(byte、short、int、long、char、float、double、boolean)變量。

10)true真

true關(guān)鍵字表示boolean變量的兩個(gè)合法值中的一個(gè)。

11)false假

false關(guān)鍵字代表boolean變量的兩個(gè)合法值之一。

7.變量引用

1)super父類,超類

super關(guān)鍵字用于引用使用該關(guān)鍵字的類的超類。

作為獨(dú)立語(yǔ)句出現(xiàn)的super表示調(diào)用超類的構(gòu)造方法。

super.()表示調(diào)用超類的方法。只有在如下情況中才需要采用這種用法:要調(diào)用在該類中被重寫的方法,以便指定應(yīng)當(dāng)調(diào)用在超類中的該方法。

2)this本類

this關(guān)鍵字用于引用當(dāng)前實(shí)例。

當(dāng)引用可能不明確時(shí),可以使用this關(guān)鍵字來(lái)引用當(dāng)前的實(shí)例。

3)void無(wú)返回值

void關(guān)鍵字表示null類型。

void可以用作方法的返回類型,以指示該方法不返回值。

8.保留字

正確識(shí)別java語(yǔ)言的關(guān)鍵字(keyword)和保留字(reserved word)是十分重要的。Java的關(guān)鍵字對(duì)java的編譯器有特殊的意義,他們用來(lái)表示一種數(shù)據(jù)類型,或者表示程序的結(jié)構(gòu)等。保留字是為java,預(yù)留的關(guān)鍵字,他們雖然現(xiàn)在沒(méi)有作為關(guān)鍵字,但在以后的升級(jí)版本中有可能作為關(guān)鍵字。

識(shí)別java語(yǔ)言的關(guān)鍵字,不要和其他語(yǔ)言如c/c++的關(guān)鍵字混淆。

const和goto是java的保留字,所有的關(guān)鍵字都是小寫。

1) goto跳轉(zhuǎn)

goto保留關(guān)鍵字,但無(wú)任何作用。結(jié)構(gòu)化程序設(shè)計(jì)完全不需要goto語(yǔ)句即可完成各種流程,而goto語(yǔ)句的使用往往會(huì)使程序的可讀性降低,所以Java不允許goto跳轉(zhuǎn)。