Java中的static關(guān)鍵字有以下幾個作用:
1. 靜態(tài)變量:使用static關(guān)鍵字聲明的變量是靜態(tài)變量,也稱為類變量。靜態(tài)變量在類加載時被初始化,且只有一份拷貝,被所有實(shí)例共享。可以通過類名直接訪問靜態(tài)變量,無需創(chuàng)建對象。
2. 靜態(tài)方法:使用static關(guān)鍵字聲明的方法是靜態(tài)方法,也稱為類方法。靜態(tài)方法可以直接通過類名調(diào)用,無需創(chuàng)建對象。靜態(tài)方法只能訪問靜態(tài)變量和調(diào)用其他靜態(tài)方法,不能訪問非靜態(tài)成員。
3. 靜態(tài)代碼塊:使用static關(guān)鍵字聲明的代碼塊是靜態(tài)代碼塊。靜態(tài)代碼塊在類加載時執(zhí)行,用于初始化靜態(tài)變量或執(zhí)行一些只需執(zhí)行一次的操作。
4. 靜態(tài)內(nèi)部類:使用static關(guān)鍵字聲明的內(nèi)部類是靜態(tài)內(nèi)部類。靜態(tài)內(nèi)部類與外部類的實(shí)例無關(guān),可以直接通過外部類名訪問。
5. 靜態(tài)導(dǎo)入:使用static關(guān)鍵字可以導(dǎo)入類的靜態(tài)成員,使其可以直接使用,無需通過類名限定。
靜態(tài)成員具有以下特點(diǎn):
- 靜態(tài)成員在內(nèi)存中只有一份拷貝,被所有實(shí)例共享。
- 靜態(tài)成員可以通過類名直接訪問,無需創(chuàng)建對象。
- 靜態(tài)成員在類加載時被初始化,且在整個程序運(yùn)行期間保持不變。
需要注意的是,靜態(tài)成員不能訪問非靜態(tài)成員,因?yàn)榉庆o態(tài)成員是與實(shí)例相關(guān)的,而靜態(tài)成員是與類相關(guān)的。靜態(tài)成員的生命周期與類的生命周期相同,即在類被卸載時才會被銷毀。