Java 基礎知識之關鍵字——持續更新中

1、final 關鍵字

(1) 修飾成員變量:

          對於基本類型:

          final 使數值不變,也就是不能被修改,同時必須賦初始值,只能被初始化一次。

         (1) 單獨一個 final 關鍵字修飾基本數據類型時,可以有兩種方式賦初始值。

              i. 聲明時直接賦初始值

             ii. 使用構造函數賦初始值

        (2) 和 static 一起修飾基本數據類型時,則只能通過聲明時賦初值。

        對於引用類型:

        final 使引用不變,也就是說不能將其它對象引用賦值給它了,但是被引用的對象本身是可以修改的。

(2)修飾方法:

         被修飾的的方法不能被子類覆蓋(重寫)。

         private 方法隱式的被指定爲 final,也就是說 private 修飾的方法也不能被子類覆蓋(但是如果在子類中定義的方法和基類中的方法簽名相同,這個不屬於覆蓋)。

(3)修飾類:

         被修飾的類不能被繼承。

 

2、static 關鍵字

(1)靜態變量:

         靜態變量在內存中只存在一份,在類第一次加載時初始化一次。類的所有實例都共享靜態變量,直接通過類名來訪問。

(2)靜態方法

         類加載時就存在了,不依賴於任何一個實例,靜態方法不能是抽象類型的,必要要有實現

(3)靜態語句塊

        靜態語句塊和靜態變量一樣在類第一次加載時運行一次。

(4)初始化順序

        靜態數據優先於其他數據的初始化,靜態數據 和 靜態語句塊 誰先運行取決於他們在代碼中的位置。

        實例變量和普通語句塊的初始化在 靜態數據 和 靜態語句塊 之後完成初始化

        最後是構造函數中的數據進行初始化

 

3、native 關鍵字

     Java 中,native 關鍵字修飾的函數聲明表明該方法的實現不是由 Java 完成的,而是由 C/C++ 實現的,並被編譯成了 .dll ,由 Java 調用。

 

4、transient 關鍵字

       transient 只能修飾變量,不能修飾方法和類;

       使用了此關鍵字之後,對象序列化的時候會自動過濾被此關鍵字修飾的變量;

       靜態變量不管是否有 transient 修飾,都不能被序列化;

 

5. instanceof 關鍵字

       測試一個對象是否是一個類的實例,用法:

 boolean result = obj instanceof Class

       obj 是一個對象(obj 必須是引用類型,不能是基本類型,否則編譯不通過),Class 表示一個類或者一個接口,當 obj 爲 Class 的對象,或者是其直接、間接子類、或是其接口的實現類時,返回 true,否則返回 false。

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章