Java中Static的作用

靜態:static  靜態是指在編譯後所分配的內存會一直存在,直到程序退出後內存纔會釋放者個空間
用法:是一個修飾符;用於修飾成員(成員變量和成員函數)

當成員被靜態修飾後,就多了一種調用方式,除了可以被對象調用外,還可以直接被類名調用格式:類名.靜態成員

      對於一個類的方法,如果該方法被聲明爲static的,則調用該方法時不用創建該類的對象,即 類名.方法名;
      對於一個類的成員變量如果被聲明爲static的,則調用該類該對象時不用創建該類對象,即 類名.變量名

靜態的特點:
1.隨着類的加載而加載
也就是,說靜態會隨着類的消失而消失,說明靜態的生命週期最長
2.優先於對象的存在
明確一點:靜態是先存在的對象是後存在的
3.被所有對象共享
4.可以直接被類名多調用


靜態的使用注意事項:
1.靜態方法只能訪問靜態成員(包括成員變量和成員方法)
  非靜態方法可以訪問靜態也可以訪問非靜態
2.靜態方法中不可以定義this,super關鍵字
  因爲靜態優先於對象存在,所以靜態方法中不可以出現this,super關鍵字
3.主函數是靜態的。

     聲明爲static的方法,只能訪問其他聲明爲static的方法、只能訪問其他被聲明爲static的數據且不能以任何方式引用this或者super;


java中所有new出來的對象,會被全部分配在堆上,堆中的對象由垃圾回收器負責回收;
棧上面一般用於存放基本類型的變量數據和對象的引用,當沒有引用指向數據時,這個數據就會消失;
靜態成員則存放在靜態域中;
字符串常量和基本類型常量(public static final)存放在常量池中。

如下圖所示:




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章