1. 程式人生 > >Java中static(靜態變數/方法)的優缺點

Java中static(靜態變數/方法)的優缺點

static關鍵字宣告的變數或方法稱為靜態變數/方法

靜態static變數/方法在類載入的過程中被初始化,在記憶體中只存在一份,所以可以把它當作是全域性變數/方法。

優點

  1. 屬於類級別的,不需要建立物件就可以直接使用.
  2. 全域性唯一,記憶體中唯一,靜態變數可以唯一標識某些狀態.
  3. 在類載入時候初始化,常駐在記憶體中,呼叫快捷方便.

應用場景:
1. 靜態方法最適合工具類中方法的定義;比如檔案操作,日期處理方法等.
2. 靜態方法適合入口方法的定義;如單例模式,因為從外部拿不到建構函式,所有定義一個靜態的方法獲取物件非常有必要.
3. 靜態變數適合全域性變數的定義.(如布林型靜態成員變數做控制符)

缺點

  1. 靜態方法不能呼叫非靜態的方法和變數.(非靜態方法可以任意的呼叫靜態方法/變數
  2. 不能使用this和super關鍵字(屬於類級別,沒有建立物件籤不可用this/super)