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:執行順序
靜態程式碼塊--構造程式碼塊--構造方法