Java語言static關鍵字
導語:Java語言static的靜態屬性是用來修飾成員變量和成員函數,下面讓我們一起了解一下這種關鍵詞吧!
1、static關鍵字:
(1)靜態的意思,用來修飾成員變量和成員函數
(2)靜態的特點:
隨着類的加載而加載
優先於對象存在
對所有對象共享
可以被類名直接調用
(3)靜態的注意事項
A:靜態方法只能訪問靜態成員
為什麼:因為靜態的內容是隨着類的加載而加載,它是先進內存的。
B:靜態方法中不能使用this,super關鍵字
C:主方法是靜態的
public static void main(String[] args)
public:公共的意思,是最大權限修飾符。
static:由於jvm調用main方法的時候,沒有創建對象。
只能通過類名調用。所以,main必須用static修飾。
void:由於main方法是被jvm調用,不需要返回值。用void修飾。
main:main是主要的意思,所以jvm採用了這個名字。是程序的入口。
String[]:字符串數組
args:數組名
在運行的時候,通過java命令給args數組賦值。
格式:java MainTest hello world itcast
(4)靜態變量和成員變量的區別
A:調用方式
靜態變量也稱為類變量,可以直接通過類名調用。也可以通過對象名調用。
這個變量屬於類。
成員變量也稱為實例變量,只能通過對象名調用。這個變量屬於對象。
B:存儲位置
靜態變量存儲在方法區長中的靜態區。
成員變量存儲在堆內存。
C:生命週期
靜態變量隨着類的加載而存在,隨着類的消失而消失。生命週期長。
成員變量隨着對象的.創建而存在,隨着對象的消失而消失。
D:與對象的相關性
靜態變量是所有對象共享的數據。
成員變量是每個對象所特有的數據。
(5)靜態的優點和弊端
優點:
對對象的共享數據進行單獨空間的存儲,節省內存,沒有必要每個對象都存儲一份
可直接被類名調用
弊端:
生命週期過長,隨着類的消失而消失
訪問出現權限,即靜態雖好但只能訪問靜態
(6)什麼使用使用靜態呢?
A:當所有對象共享某個數據的時候,就把這個成員變量定義為靜態修飾的。
B:當某個方法沒有訪問該類中的非靜態成員,就可以把這個方法定義為靜態修飾。
靜態的生命週期比較長,所以一般不推薦使用。
(7)靜態代碼塊
A:它只執行一次,它比main還先執行。
B:執行順序
靜態代碼塊--構造代碼塊--構造方法