淺析Java中static修飾符


1、概述

  static關鍵字的中文意思是靜態的,該修飾符可以修飾字段、方法、內部類。使用該關鍵字修飾的內容,在面向對象中static修飾的內容是隸屬於類,而不是直接隸屬於對象的,所以static修飾的成員變量一般稱作類成員變量,而static修飾的方法一般稱作類方法。

2、static修飾符的特點

  1)static修飾的成員(字段/方法),隨着所在類的加載而加載。當JVM把字節碼加載斤JVM的時候,static修飾的成員已經在內存中存在了

  2)優先於對象的存在,對象是我們手動通過new關鍵字創建出來的。

  3)satic修飾的成員被該類型的所有對象所共享。根據該類創建出來的任何對象,都可以訪問static成員。 分析:表面上通過對象去訪問static成員,其本質依然使用類名訪問,和對象沒有任何關系(通過反編譯可以看到)。

  4)直接使用類名訪問static成員 ,因為static修飾的成員直接屬於類,不屬於對象,所以可以直接使用類名訪問static成員。

3、類成員和實例成員的訪問

  1)類成員:使用static修飾的成員,直接屬於類,可以通過類來訪問static字段和static方法

  2)實例成員:沒有使用static修飾的成員,只屬於對象,通過對象來訪問非static字段和非static方法(對象其實可以訪問類成員,但是底層依然使用類名訪問的)

  3)static方法中:只能調用static成員

  4)非static方法:可以訪問靜態成員,也可以訪問實例成員

4、什么時候定義成static的字段和方法

  如果這個一個狀態或行為屬於整個事物(類),就直接使用static修飾,被所有對象所共享。 在開發中,往往把工具方法使用static修飾。如果不使用static修飾,則這些方法屬於該類的對象,我們得先創建對象再調用方法,在開發中工具對象只需要一份即可,可能創建N個對象,此時我們往往把該類設計為單例的,但還是有點麻煩。所以,一般在開發中設計工具方法,為了調用簡單,我們使用static修飾。

5、類成員的使用

  1)利處:對對象的共享數據進行單獨空間的存儲,節省空間,沒有必要每一個對象中都存儲一份,可以直接被類名調用。

  2)弊端:生命周期過長。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM