回覆列表
  • 1 # 菜鳥基地1號

    靜態屬性修飾符!被修飾的變數或方法,都屬於靜態變數和靜態方法,屬於整個類的!靜態變數或靜態方法只能在靜態的環境中使用,不能在非靜態環境中使用

  • 2 # IT人劉俊明

    Java基礎內容裡static佔據著重要的篇幅,雖然開發中使用static的機會並不多,但是對於static的理解對掌握Java語言卻很重要,尤其在資源載入的過程中。

    對於static的理解分為兩個層面,第一個層面就是關於static在JVM中的定義,第二個層面就是關於static在程式碼編寫中的規則。

    static在JVM中的定義決定了static在使用過程中的特點,關於staic在JVM中的定義主要就是儲存區域的定義,這是導致一系列static應用特徵的根本原因(關於JVM的儲存方式的描述我在之前的文章中已經闡述過了,在此就不再贅述,感興趣的朋友可以關注我並檢視之前的文章)。

    static在程式設計中的規則是每個Java程式設計師都應該掌握的,簡單的說可以分成4個部分,下面分別做一個描述。

    第一部分:static修飾屬性。static修飾的屬性稱為靜態屬性或者是類屬性,有以下幾個特點:

    static只能修飾成員屬性,不能修飾區域性屬性。

    static修飾的屬效能夠在同一個類的物件間共享。

    static修飾的屬性隨著類的載入而載入,可以用類名直接訪問。

    看一個例子:

    第二部分:static修飾方法。static修飾的方法稱為類方法或靜態方法,有以下幾個特點:

    static方法可以透過類的名字直接訪問。

    static方法無this,也就是說在static方法中不能使用this關鍵字。

    static方法不能被非static方法覆蓋。

    static方法不能直接訪問外部非static方法或屬性。

    看一個例子:

    第三部分:static修飾類。static可以修飾內部類,使用static修飾的內部類自動升級為頂級類,可以直接建立物件並可以在其內部定義static方法。看一個例子:

    第四部分:static修飾塊。static塊隨著類的載入而載入,但是隻載入一次,是一種介於構造方法和普通方法之間的一種應用。看一個例子:

    透過以上的描述,相信大家對static的使用已經有了一個大致上的理解,有一點需要注意,那就是在Web開發中,一定要慎用static修飾符。

    如果有Java開發方面的問題,也可以諮詢我。

  • 3 # 會點程式碼的大叔

    和大家分享一下我對Java中static關鍵字的理解(趕時間的同學直接看加粗的字兒)。

    什麼是static

    static作為Java一個重要的關鍵字,主要的作用是:可以在沒有建立物件的情況下來進行訪問或呼叫(變數、方法)。

    static關鍵字可以減少成員變數和方法的多次建立,當方法或者變數被static修飾之後,就不需要依賴於物件進行訪問了,只要類被載入,那麼就可以透過類名進行訪問,如:類名().變數名。

    static修飾變數

    有人喜歡把static修飾的變數稱作全域性變數,但實際上,Java中不存在全域性變數這個概念(在別的文章裡,有人說我喜歡咬文爵字,但我覺得有些概念還是說清楚比較好)。

    全域性變數應該拿著變數的名字就能使用的,但是Java中都是:類名().變數名;這樣使用的;

    當JVM載入一個類的時候,如果這個類存在static修飾的變數或方法,則會為這些變數或方法在記憶體中固定的位置開闢一個固定大小的區域,因為這些“固定”,所以看起來是全域性的。

    static修飾方法

    被static修飾的方法,我們一般稱作靜態方法。

    類名().方法();也就避免了new物件資源消耗;

    靜態方法不依賴物件就能訪問,因此對於靜態方法是沒有this的;

    靜態方法中不能訪問非靜態變數和非靜態方法。

    靜態程式碼塊

    如果一些程式碼需要在專案啟動的時候就執行,那麼就必須使用靜態程式碼塊了。

    靜態程式碼塊會隨著類載入而載入;

    如果有多個靜態程式碼塊,那麼會按前後順序載入;

    一個靜態程式碼塊,只會執行一次;

    靜態程式碼塊不能存在於任何方法體中。

  • 中秋節和大豐收的關聯?
  • 鐵板燒魷魚新增什麼料不會縮小?