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