1. 程式人生 > >static的作用,什麼是static?

static的作用,什麼是static?

  static 表示"全域性"或者"靜態"的意思,用來修飾成員變數和成員方法,也可以形成靜態程式碼塊。但是java語言中沒有全域性變數的概念。static修飾的成員變數和成員方法獨立於該類的任何物件。也就是說,它不依賴類特定的例項,被類的所有例項共享。

因此只要這個類被載入,JVM就能根據類名在執行時資料區的方法區內定找到他們。而static物件可以在它的任何物件建立之前訪問,無需引用任何物件。


  靜態方法可以直接通過類名呼叫,任何的例項也都可以呼叫,因此靜態方法中不能用thissuper關鍵字,不能直接訪問所屬類的例項變數和例項方法,(就是不帶static的成員變數和成員方法),只能訪問所屬類的靜態成員變數和成員方法。

 

private相當於訪問許可權限定,static表示不要例項化就可以使用。

private所修飾的變數或方法,表示這個變數或方法可以在本類的靜態程式碼塊中,或者本類的其他靜態成員方法中使用(當然也可以在非靜態成員方法中使用),但是不能在其他類中通過類名來直接引用。

 

 

靜態變數的好處:靜態變數在記憶體中只有一個拷貝(節省記憶體),JVM只為靜態分配一次記憶體,在載入類的過程中完成靜態變數的記憶體分配,可以用類名直接訪問(方便)
靜態變數使用環境:在物件之間共享值時,方便訪問變數時。

例項變數的好處:每建立一個例項,JVM就會為例項變數分配一次記憶體,例項變數可以在記憶體中有多個拷貝,互不影響(靈活)