- 相關(guān)推薦
Java語(yǔ)言static關(guān)鍵字
導語(yǔ):Java語(yǔ)言static的靜態(tài)屬性是用來(lái)修飾成員變量和成員函數,下面讓我們一起了解一下這種關(guān)鍵詞吧!
1、static關(guān)鍵字:
(1)靜態(tài)的意思,用來(lái)修飾成員變量和成員函數
(2)靜態(tài)的特點(diǎn):
隨著(zhù)類(lèi)的加載而加載
優(yōu)先于對象存在
對所有對象共享
可以被類(lèi)名直接調用
(3)靜態(tài)的注意事項
A:靜態(tài)方法只能訪(fǎng)問(wèn)靜態(tài)成員
為什么:因為靜態(tài)的內容是隨著(zhù)類(lèi)的加載而加載,它是先進(jìn)內存的。
B:靜態(tài)方法中不能使用this,super關(guān)鍵字
C:主方法是靜態(tài)的
public static void main(String[] args)
public:公共的意思,是最大權限修飾符。
static:由于jvm調用main方法的時(shí)候,沒(méi)有創(chuàng )建對象。
只能通過(guò)類(lèi)名調用。所以,main必須用static修飾。
void:由于main方法是被jvm調用,不需要返回值。用void修飾。
main:main是主要的意思,所以jvm采用了這個(gè)名字。是程序的入口。
String[]:字符串數組
args:數組名
在運行的時(shí)候,通過(guò)java命令給args數組賦值。
格式:java MainTest hello world itcast
(4)靜態(tài)變量和成員變量的區別
A:調用方式
靜態(tài)變量也稱(chēng)為類(lèi)變量,可以直接通過(guò)類(lèi)名調用。也可以通過(guò)對象名調用。
這個(gè)變量屬于類(lèi)。
成員變量也稱(chēng)為實(shí)例變量,只能通過(guò)對象名調用。這個(gè)變量屬于對象。
B:存儲位置
靜態(tài)變量存儲在方法區長(cháng)中的靜態(tài)區。
成員變量存儲在堆內存。
C:生命周期
靜態(tài)變量隨著(zhù)類(lèi)的加載而存在,隨著(zhù)類(lèi)的消失而消失。生命周期長(cháng)。
成員變量隨著(zhù)對象的創(chuàng )建而存在,隨著(zhù)對象的消失而消失。
D:與對象的相關(guān)性
靜態(tài)變量是所有對象共享的數據。
成員變量是每個(gè)對象所特有的數據。
(5)靜態(tài)的優(yōu)點(diǎn)和弊端
優(yōu)點(diǎn):
對對象的共享數據進(jìn)行單獨空間的存儲,節省內存,沒(méi)有必要每個(gè)對象都存儲一份
可直接被類(lèi)名調用
弊端:
生命周期過(guò)長(cháng),隨著(zhù)類(lèi)的消失而消失
訪(fǎng)問(wèn)出現權限,即靜態(tài)雖好但只能訪(fǎng)問(wèn)靜態(tài)
(6)什么使用使用靜態(tài)呢?
A:當所有對象共享某個(gè)數據的時(shí)候,就把這個(gè)成員變量定義為靜態(tài)修飾的。
B:當某個(gè)方法沒(méi)有訪(fǎng)問(wèn)該類(lèi)中的非靜態(tài)成員,就可以把這個(gè)方法定義為靜態(tài)修飾。
靜態(tài)的生命周期比較長(cháng),所以一般不推薦使用。
(7)靜態(tài)代碼塊
A:它只執行一次,它比main還先執行。
B:執行順序
靜態(tài)代碼塊--構造代碼塊--構造方法
【Java語(yǔ)言static關(guān)鍵字】相關(guān)文章:
C語(yǔ)言關(guān)鍵字static的使用12-01
C語(yǔ)言關(guān)鍵字:auto、static、register、const08-06
C語(yǔ)言中Static和Const關(guān)鍵字的作用04-16
C語(yǔ)言中的static和extern關(guān)鍵字的作用06-19
java關(guān)鍵字復習05-10
Java關(guān)鍵字及注釋08-12
理解java中的關(guān)鍵字06-22