回覆列表
  • 1 # YAO大神

    Java關鍵字及其作用

    一、 關鍵字總覽:

    訪問控制

    private

    protected

    public

    類,方法和變數修飾符

    abstract

    class

    extends

    final

    implements

    interface

    native

    new

    static

    strictfp

    synchronized

    transient

    volatile

    程式控制

    break

    continue

    return

    do

    while

    if

    else

    for

    instanceof

    switch

    case

    default

    錯誤處理

    try

    cathc

    throw

    throws

    包相關

    import

    package

    基本型別

    boolean

    byte

    char

    double

    float

    int

    long

    short

    null

    true

    false

    變數引用

    super

    this

    void

    保留字

    goto

    const

    二、 詳細解釋

    1. 訪問控制

    1) private 私有的

    private 關鍵字是訪問控制修飾符,可以應用於類、方法或欄位(在類中宣告的變數)。 只能在宣告 private(內部)類、方法或欄位的類中引用這些類、方法或欄位。在類的外部或者對於子類而言,它們是不可見的。 所有類成員的預設訪問範圍都是 package 訪問,也就是說,除非存在特定的訪問控制修飾符,否則,可以從同一個包中的任何類訪問類成員。

    2) protected 受保護的

    protected 關鍵字是可以應用於類、方法或欄位(在類中宣告的變數)的訪問控制修飾符。可以在宣告 protected 類、方法或欄位的類、同一個包中的其他任何類以及任何子類(無論子類是在哪個包中宣告的)中引用這些類、方法或欄位。所有類成員的預設訪問範圍都是 package 訪問,也就是說,除非存在特定的訪問控制修飾符,否則,可以從同一個包中的任何類訪問類成員。

    3) public 公共的

    public 關鍵字是可以應用於類、方法或欄位(在類中宣告的變數)的訪問控制修飾符。 可能只會在其他任何類或包中引用 public 類、方法或欄位。所有類成員的預設訪問範圍都是 package 訪問,也就是說,除非存在特定的訪問控制修飾符,否則,可以從同一個包中的任何類訪問類成員。

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

    1) abstract 宣告抽象

    abstract關鍵字可以修改類或方法。abstract類可以擴充套件(增加子類),但不能直接例項化。abstract方法不在宣告它的類中實現,但必須在某個子類中重寫。採用 abstract方法的類本來就是抽象類,並且必須宣告為abstract。

    2) class類

    class 關鍵字用來宣告新的 Java 類,該類是相關變數和/或方法的集合。類是面向物件的程式設計方法的基本構造單位。類通常代表某種實際實體,如幾何形狀或人。類是物件的模板。每個物件都是類的一個例項。要使用類,通常使用 new 運算子將類的物件例項化,然後呼叫類的方法來訪問類的功能。

    3) extends 繼承、擴充套件

    extends 關鍵字用在 class 或 interface 宣告中,用於指示所宣告的類或介面是其名稱後跟有 extends 關鍵字的類或介面的子類。子類繼承父類的所有 public 和 protected 變數和方法。 子類可以重寫父類的任何非 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(內部)類可以被其他類例項化和引用(即使它是頂級類)。在上面的示例中,另一個類中的程式碼可以例項化 MyStaticClass 類,方法是用包含它的類名來限定其名稱,如 MyClass.MyStaticClass。

    static 欄位(類的成員變數)在類的所有例項中只存在一次。

    可以從類的外部呼叫 static 方法,而不用首先例項化該類。這樣的引用始終包括類名作為方法呼叫的限定符。

    模式:public final static <type> varName = <value>; 通常用於宣告可以在類的外部使用的類常量。在引用這樣的類常量時需要用類名加以限定。在上面的示例中,另一個類可以用 MyClass.MAX_OBJECTS 形式來引用 MAX_OBJECTS 常量。

    10) strictfp 嚴格,精準

    strictfp的意思是FP-strict,也就是說精確浮點的意思。在Java虛擬機器進行浮點運算時,如果沒有指定strictfp關鍵字時,Java的編譯器以及執行環境在對浮點運算的表示式是採取一種近似於我行我素的行為來完成這些操作,以致於得到的結果往往無法令人滿意。而一旦使用了strictfp來宣告一個類、介面或者方法時,那麼所宣告的範圍內Java的編譯器以及執行環境會完全依照浮點規範IEEE-754來執行。因此如果想讓浮點運算更加精確,而且不會因為不同的硬體平臺所執行的結果不一致的話,那就請用關鍵字strictfp。

    可以將一個類、介面以及方法宣告為strictfp,但是不允許對介面中的方法以及建構函式宣告strictfp關鍵字

    11) synchronized執行緒、同步

    synchronized 關鍵字可以應用於方法或語句塊,併為一次只應由一個執行緒執行的關鍵程式碼段提供保護。

    synchronized 關鍵字可防止程式碼的關鍵程式碼段一次被多個執行緒執行。

    如果應用於靜態方法,那麼,當該方法一次由一個執行緒執行時,整個類將被鎖定。

    如果應用於例項方法,那麼,當該方法一次由一個執行緒訪問時,該例項將被鎖定。

    如果應用於物件或陣列,當關聯的程式碼塊一次由一個執行緒執行時,物件或陣列將被鎖定。

    12) transient 短暫

    transient 關鍵字可以應用於類的成員變數,以便指出該成員變數不應在包含它的類例項已序列化時被序列化。

    當一個物件被序列化的時候,transient型變數的值不包括在序列化的表示中,然而非transient型的變數是被包括進去的。

    Java的serialization提供了一種持久化物件例項的機制。當持久化物件時,可能有一個特殊的物件資料成員,我們不想用serialization機制來儲存它。為了在一個特定物件的一個域上關閉serialization,可以在這個域前加上關鍵字transient。

    transient是Java語言的關鍵字,用來表示一個域不是該物件序列化的一部分。當一個物件被序列化的時候,transient型變數的值不包括在序列化的表示中,然而非transient型的變數是被包括進去的。

    13) volatile 易失

    volatile 關鍵字用於表示可以被多個執行緒非同步修改的成員變數。

    注意:volatile 關鍵字在許多 Java 虛擬機器中都沒有實現。 volatile 的目標用途是為了確保所有執行緒所看到的指定變數的值都是相同的。

    Java 語言中的 volatile 變數可以被看作是一種 “程度較輕的 synchronized”;與 synchronized 塊相比,volatile 變數所需的編碼較少,並且執行時開銷也較少,但是它所能實現的功能也僅是 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) do 執行

    do 關鍵字用於指定一個在每次迭代結束時檢查其條件的迴圈。

    do 迴圈體至少執行一次。

    條件表示式後面必須有分號。

    5) while 迴圈

    while 關鍵字用於指定一個只要條件為真就會重複的迴圈。

    6) if 如果

    if 關鍵字指示有條件地執行程式碼塊。條件的計算結果必須是布林值。

    if 語句可以有可選的 else 子句,該子句包含條件為 false 時將執行的程式碼。

    包含 boolean 運算元的表示式只能包含 boolean 運算元。

    7) else 否則

    else 關鍵字總是在 if-else 語句中與 if 關鍵字結合使用。else 子句是可選的,如果 if 條件為 false,則執行該子句。

    8) for 迴圈

    for 關鍵字用於指定一個在每次迭代結束前檢查其條件的迴圈。

    for 語句的形式為 for(initialize; condition; increment)

    控制元件流進入 for 語句時,將執行一次 initialize 語句。

    每次執行迴圈體之前將計算 condition 的結果。如果 condition 為 true,則執行迴圈體。

    每次執行迴圈體之後,在計算下一個迭代的 condition 之前,將執行 increment 語句。

    9) instanceof 例項

    instanceof 關鍵字用來確定物件所屬的類。

    10) switch 觀察

    switch 語句用於基於某個表示式選擇執行多個程式碼塊中的某一個。

    switch 條件的計算結果必須等於 byte、char、short 或 int。

    case 塊沒有隱式結束點。break 語句通常在每個 case 塊末尾使用,用於退出 switch 語句。

    如果沒有 break 語句,執行流將進入所有後面的 case 和/或 default 塊。

    11) case 返回觀察裡的結果

    case 用來標記 switch 語句中的每個分支。

    case 塊沒有隱式結束點。break 語句通常在每個 case 塊末尾使用,用於退出 switch 語句。

    如果沒有 break 語句,執行流將進入所有後面的 case 和/或 default 塊。

    12) default 預設

    default 關鍵字用來標記 switch 語句中的預設分支。

    default 塊沒有隱式結束點。break 語句通常在每個 case 或 default 塊的末尾使用,以便在完成塊時退出 switch 語句。

    如果沒有 default 語句,其引數與任何 case 塊都不匹配的 switch 語句將不執行任何操作。

    4. 錯誤處理

    1) try 捕獲異常

    try 關鍵字用於包含可能引發異常的語句塊。

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

  • 中秋節和大豐收的關聯?
  • 上聯:秋風蕭瑟秋季涼,下聯怎麼對?