靜態(static)總結


static :

1,修飾符,用於修飾成員變量和成員方法

2,被static修飾後的成員變量被對象共享。

3,靜態優先於對象存在。

4,靜態成員可以被對象訪問,也可以被類名訪問。

5,靜態隨着類的加載而加載。

       對象特有的數據存儲到對象的堆內存中。

       對象共享的數據存儲在方法區的靜態區中。

什麼時間定義靜態?

1,靜態變量:當變量被對象共享時。

2,靜態函數:方法中沒有訪問到非靜態變量時(特有數據)

靜態使用的注意事項:

1,靜態方法只能訪問靜態成員(所以靜態雖然多了一種用類名調用的方式,但是也出現了訪問的侷限性)。

2,非靜態方法即可以訪問靜態又可以訪問非靜態。(靜態先存在於方法區)非靜態都屬於對象。

3,靜態方法中不可以出現this,super關鍵字。  因爲this代表對象,static方法存在是還沒有對象。

4,主函數是靜態的。 

靜態變量和成員變量的區別:

1,在內存空間存儲的位置:

a)       靜態變量:方法區的靜態區中。

b)       成員變量:堆內存中。

2,什麼週期:

a)       靜態變量:隨着類的加載而加載,隨着類的消失而消失。

b)       成員變量:隨着對象的創建而出現,隨着所屬對象變成垃圾被收回而消失

3,調用方式:

a)       成員變量:只能被對象調用。

b)       靜態變量:既可以被對象調用,也可以被類名調用。

4,數據體現:

a)       成員變量的值稱爲對象中的特有數據。

b)       靜態變量的值稱爲對象中的共享數據。

只有類中的成員變量被用到,類纔會被加載。

main函數:

public static voidmain(String[] args)

 

public     : 主函數是一個功能,被jvm調用所以權限要足夠大。

static      : jvm調用主函數,是不需要對象的。

void : 主函數沒有返回值。

main       : 主函數固定的名稱的,jvm認識。

(String[] args): 主函數的參數列表,就一個參數,字符串數組類型。

arguments-->args:

 

靜態代碼塊:

       static {}

       特點:

       隨着類的加載而執行,只執行一次。

作用:

       給類進行初始化。

       類被加載(類中的成員被調用)à靜態代碼塊à構造代碼塊à構造函數

類名爲public時 ,.java文件名必須與類名同名。

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