Java——static

【static】spa

<1>static成員變量存儲在內存data segment區域,不是存放在堆中。對象

<2>靜態成員變量屬於整個類,任何一個對象均可以訪問這個值;若是沒有對象,能夠用類訪問,格式爲:類.靜態成員變量。內存

 

【靜態變量與非靜態變量】編譯器

 

靜態成員變量只存在一份(不論new多少個對象,也無論用不用到該變量,它屬於整個類),存放在內存的數據區;非靜態成員變量每new一個對象就產生一次,在內存的堆中。io

 

【Exception】編譯

 public class A{class

       int i;變量

  }引用

  public static void main(String[] args){程序

       int i = 0;

  }

  編譯運行後會報錯:non-static variable i cannot be referenced from a static context[非靜態變量i不能在靜態上下文引用]

 【分析】靜態上下文指的是static main,main方法須要執行的話不須要new一個對象出來(若是不設置爲static,那麼意味着在代碼區找到主程序入口時,還須要new對象才能運行,那樣對編譯器而言負擔太重)。

 

【靜態方法與動態方法】

  靜態方法不是針對某一對象調用,沒有對象同樣能夠調用(不出現對象名字也能夠訪問);非靜態方法針對某一對象調用。

相關文章
相關標籤/搜索