static 方便在沒有建立物件的情況來呼叫
可以用來修飾類的成員方法、成員變數,**塊、內部靜態類、靜態匯入包
1)靜態變數
被static修飾的變數叫靜態變數(或類變數),否則為例項變數,
靜態變數類載入時分配一次記憶體,可以直接類名訪問;例項變數建立物件時被初始化,存在多個副本,互不影響。
2)靜態方法
static修飾的方法為靜態方法,可被任何例項通過類名呼叫。注意:靜態方法不能訪問類的例項變數和例項方法;靜態方法不依賴任務例項和物件所有方法中不能存在this super關鍵字;靜態方法必須被實現,不能被abstract。
3)靜態**塊
被static修飾的語句塊,可存在多個,jvm載入類時順序載入靜態**塊,目的在於減少記憶體占用,優化效能。
4)靜態內部類
靜態內部類,定義在類中,任何方法外,用static定義;
靜態內部類只能訪問外部類的靜態成員。靜態內部類的物件可以直接生成:outer.inner in=new outer.inner();而不需要通過生成外部類物件來生成。這樣實際上使靜態內部類成為了乙個頂級類。可以定義私有靜態內部類。
5)靜態匯入包
import static com…..classname.* 可以匯入classname類中的靜態方法,也可以匯入某個靜態方法,*替換成方法名
Java中static關鍵字
靜態結構的生命週期要早於非靜態結構,同時 也要晚於非靜態結構 執行結果 變數變數值 c2.nation null c2.nation china public void test2 執行結果 輸出china 內容與靜態屬性大體相同 1.靜態方法內只能呼叫本類靜態屬性或靜態方法 2.靜態方法裡面是不能...
java中static關鍵字
一 可修飾成員變數和方法 靜態函式要注意的事項 1.靜態函式可呼叫類名或物件呼叫,而非靜態函式只能使用物件呼叫。2.靜態函式可直接訪問靜態成員,但不能訪問非靜態成員。原因 靜態函式可通過類名直接呼叫,這時可能還未存在非靜態成員,因為其是根據物件生成的。二 執行順序 靜態 塊的執行順序優先於非靜態 塊...
static關鍵字 java關鍵字
先按照宣告順序初始化基類靜態變數和靜態 塊,接著按照宣告順序初始化子類靜態變數和靜態 塊,而後按照宣告順序初始化基類普通變數和普通 塊,然後執行基類建構函式,接著按照宣告順序初始化子類普通變數和普通 塊,最後執行子類建構函式。import static com.test.test1.fu.say i...