java中的static關鍵字

2021-07-03 13:36:31 字數 1070 閱讀 3958

/*

一、靜態static

用法:修飾符,用於修飾成員(成員變數,成員函式),

當成員被靜態修飾後,就多了乙個呼叫方式,除了可以被物件呼叫外

還可以直接被類名呼叫,方法: 類名.靜態成員

二、static特點:

1、隨著類的載入而載入,

即靜態會隨著類的消失而消失,其生命週期很長

2、優先於物件存在

靜態成員在載入類時即存在,在具體物件建立之前

3、被所有物件所共享

4、直接被類名呼叫

三、例項變數和類變數的區別:

1、儲存位置:

例項變數隨著物件的建立在 堆記憶體 中 ;

類變數隨著類的載入在 方法區 建立;

2、生命週期:

例項變數隨著物件的消失而消失;

類變數隨著類消失而消失,生命週期最長;

四、靜態使用注意事項:

1、靜態方法只能訪問靜態成員(靜態先於物件存在,訪問非靜態成員時物件還未建立??)

非靜態方法可以訪問靜態和非靜態成員

2、靜態方法中不可以定義this , super 關鍵字

3、主函式為靜態。

五、靜態利弊:

利:對物件共享的資料進行單獨空間的儲存(方法區),節省空間

可以被類名直接呼叫

弊:生命週期過長,訪問出現侷限性,靜態方法只能訪問靜態成員

六、什麼時候使用靜態?

靜態修飾的內容有 靜態成員 和 靜態函式

1、什麼時候定義靜態變數?

當物件中出現共享資料時,該資料用static修飾。

物件中的特有資料要定義成非靜態儲存與堆記憶體中。

2、什麼時候定義靜態函式?

當功能內部沒有訪問到非靜態資料(即物件的特有 資料)

則該功能可定義為靜態方法

class person

public static void show() //靜態方法,可類名呼叫

public static void setname(string name) }

class staticdemo

}

Java中static關鍵字

靜態結構的生命週期要早於非靜態結構,同時 也要晚於非靜態結構 執行結果 變數變數值 c2.nation null c2.nation china public void test2 執行結果 輸出china 內容與靜態屬性大體相同 1.靜態方法內只能呼叫本類靜態屬性或靜態方法 2.靜態方法裡面是不能...

java中static關鍵字

一 可修飾成員變數和方法 靜態函式要注意的事項 1.靜態函式可呼叫類名或物件呼叫,而非靜態函式只能使用物件呼叫。2.靜態函式可直接訪問靜態成員,但不能訪問非靜態成員。原因 靜態函式可通過類名直接呼叫,這時可能還未存在非靜態成員,因為其是根據物件生成的。二 執行順序 靜態 塊的執行順序優先於非靜態 塊...

java中static關鍵字

static 方便在沒有建立物件的情況來呼叫 可以用來修飾類的成員方法 成員變數,塊 內部靜態類 靜態匯入包 1 靜態變數 被static修飾的變數叫靜態變數 或類變數 否則為例項變數,靜態變數類載入時分配一次記憶體,可以直接類名訪問 例項變數建立物件時被初始化,存在多個副本,互不影響。2 靜態方法...