一分鐘讓你學會JAVA的特殊關鍵詞

1.public

應該是最常用的一個關鍵詞了。它表明方法、類、參數是公開的,可以在項目中的任何地方訪問。它往往用於對外的情況,也就是對象或類對外的一種接口的形式。

2.private

私有的,它表明只能在類的內部訪問,是封裝的體現。

3.protected

主要的作用就是用來保護子類的。它的含義在於子類可以用它修飾的成員,其他的不可以,它相當於傳遞給子類的一種繼承的東西。

4.default

有時候也稱爲friendly,它是針對本包訪問而設計的,任何處於本包下的類、接口、異常等,都可以相互訪問,即使是父類沒有用protected修飾的成員也可以。(這個關鍵詞我沒怎麼用過…)

5.final

final修飾的屬性或者變量是不可改變的,對於引用類型變量來說,是地址不能改變,如數組。

final修飾的方法可以被繼承,但是不能被重寫。

final修飾的類,不能被繼承。

6.static

靜態。靜態方法:不依賴任何對象,可以直接進行訪問。在靜態方法中不能訪問類的非靜態成員變量和非靜態成員方法,因爲非靜態成員方法/變量都是必須依賴具體的對象才能夠被調用。但是要注意的是,雖然在靜態方法中不能訪問非靜態成員方法和非靜態成員變量,但是在非靜態成員方法中是可以訪問靜態成員方法/變量的。

取一道筆試題·

public class NULL { 
    public static void haha(){
        System.out.println("haha");
    } public static void main(String[] args) {
        ((NULL)null).haha();
    }
}//加入Java開發交流君樣:756584822一起吹水聊天

這題答案爲輸出haha。

因爲null值可以強制轉換爲任何java類類型。但null強制轉換後是無效對象,其返回值還是爲null,而static方法的調用是和類名綁定的,不借助對象進行訪問所以能正確輸出。反過來,沒有static修飾就只能用對象進行訪問,使用null調用對象肯定會報空指針錯了。

  • static變量也稱作靜態變量

靜態變量和非靜態變量的區別是:靜態變量被所有的對象所共享,在內存中只有一個副本,它當且僅當在類初次加載時會被初始化。而非靜態變量是對象所擁有的,在創建對象的時候被初始化,存在多個副本,各個對象擁有的副本互不影響。

  • static成員變量的初始化順序按照定義的順序進行初始化。

static關鍵字還有一個比較關鍵的作用就是 用來形成靜態代碼塊以優化程序性能。static塊可以置於類中的任何地方,類中可以有多個static塊。在類初次被加載的時候,會按照static塊的順序來執行每個static塊,並且只會執行一次。

爲什麼說static塊可以用來優化程序性能,是因爲它的特性:只會在類加載的時候執行一次。

image

最新2020整理收集的一些高頻面試題(都整理成文檔),有很多幹貨,包含mysql,netty,spring,線程,spring cloud、jvm、源碼、算法等詳細講解,也有詳細的學習規劃圖,面試題整理等,需要獲取這些內容的朋友請加Q君樣:756584822

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