靜態static最基礎的知識

static靜態:this

常見修飾的內容:spa

  1.變量:對象

    修飾變量時,叫靜態變量或類變量。此變量爲類全部隨着虛擬機加載類是而加載入方法區,此靜態變量爲該類全部對象共享,在內存中只有一個副本,它 當且僅當 類的初次加載時會被初始化。非靜態的變量是對象「私有」的,在每次建立對象時被初始化,存在多個副本,各個副本互不影響。而靜態變量是對象共享的,若一個對象改變了其值,其餘對象也會受影響。調用:其它類調用它時能夠用類名直接調用該屬性,也能夠用該類對象調用。 靜態 不能修飾局部變量!內存

  2.方法:虛擬機

    修飾方法時,叫靜態方法或類方法。類方法如其名,也是經過類名直接調用或者對象調用,但因爲它不依賴於對象就能夠訪問,所以對於靜態方法來講就沒有this.的。因爲這個特性,靜態方法中就不止直接訪問非靜態成員方法和非靜態成員變量,由於非靜態是屬於對象的,靜態屬於類的,能夠這麼理解。編譯

    注意:非靜態的方法是能夠訪問靜態方法和變量的。變量

  3.類:引用

    修飾類時,此類只能是內部類。靜態內部類不須要有指向外部類的引用而非靜態內部類須要持有對外部類的引用。非靜態內部類可以訪問外部類的靜態和非靜態成員,靜態內部類不能訪問外部類的非靜態成員,它只能訪問外部類的靜態成員(相似於靜態方法)。非靜態內部類不能脫離外部類實體被建立,非靜態內部類能夠訪問外部類的數據和方法,由於他就在外部類裏面。方法

  4.對象:數據

    修飾對象時:此對象在編譯前就存在於內存中,因此不用new去建立了,能夠直接用類名去調用。

  5.代碼塊:

    修飾代碼時,此時該代碼塊和靜態變量屬於一個加載的優先級。靜態變量丶靜態代碼塊都是隨着類的加載而加載,優先於構造方法丶構造代碼塊。靜態變量丶靜態代碼塊同時存在時,誰編寫在上面誰先加載,遵循順序結構。靜態代碼塊中不能有任何方法體的存在,並且它不能直接訪問靜態實例和實例方法,須要經過類的實例對象進行訪問。

相關文章
相關標籤/搜索