日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java静态局部变量_java中成员变量,局部变量,静态变量的辨析

發(fā)布時(shí)間:2024/2/28 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java静态局部变量_java中成员变量,局部变量,静态变量的辨析 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

轉(zhuǎn)自百度:https://baijiahao.baidu.com/s?id=1625360816541592483&wfr=spider&for=pc

1.java中成員變量,局部變量,靜態(tài)變量的辨析

Java中的變量大致分為 成員變量 和 局部變量 兩大類。

成員變量:在類體里面定義的變量稱為成員變量;

如果該成員變量有 static 關(guān)鍵字修飾,則該成員變量稱為靜態(tài)變量或類變量;

如果該成員變量沒有 static 關(guān)鍵字修飾,則該成員變量被稱為非靜態(tài)變量或?qū)嵗兞俊?/p>

局部變量:形參、方法內(nèi)定義的變量、代碼塊中定義的變量,都屬于局部變量。

下表是三者的區(qū)別:(下面這張圖很經(jīng)典好好理解)注:不要的把成員變量和靜態(tài)變量混淆在一起,兩者區(qū)別還是很大的

2.三者的根本區(qū)別在于:所在存儲(chǔ)位置的不同決定了不同的特性。

下面主要介紹一下靜態(tài)變量的利弊:

特點(diǎn):

1、想要實(shí)現(xiàn)對(duì)象中的共性數(shù)據(jù)的對(duì)象共享。可以將這個(gè)數(shù)據(jù)進(jìn)行靜態(tài)修飾。

2、被靜態(tài)修飾的成員,可以直接被類名所調(diào)用。也就是說,靜態(tài)的成員多了一種調(diào)用方式。類名.靜態(tài)方式。

3、靜態(tài)隨著類的加載而加載。而且優(yōu)先于對(duì)象存在。

弊端:

1、有些數(shù)據(jù)是對(duì)象特有的數(shù)據(jù),是不可以被靜態(tài)修飾的。因?yàn)槟菢拥脑?#xff0c;特有數(shù)據(jù)會(huì)變成對(duì)象的共享數(shù)據(jù)。這樣對(duì)事物的描述就出了問題。所以,在定義靜態(tài)時(shí),必須要明確,這個(gè)數(shù)據(jù)是否是被對(duì)象所共享的。

2、靜態(tài)方法只能訪問靜態(tài)成員,不可以訪問非靜態(tài)成員。因?yàn)殪o態(tài)方法加載時(shí),優(yōu)先于對(duì)象存在,所以沒有辦法訪問對(duì)象中的成員。

3、靜態(tài)方法中不能使用this,super關(guān)鍵字。因?yàn)閠his代表對(duì)象,而靜態(tài)在時(shí),有可能沒有對(duì)象,所以this無法使用。

什么時(shí)候使用靜態(tài)變量?

在程序運(yùn)行期間,類中的靜態(tài)變量其內(nèi)存空間對(duì)所有該類的實(shí)例是共享的,因此在某些時(shí)候,為了節(jié)省內(nèi)存空間開銷,共享資源,我們可以將類中的變量聲明為靜態(tài)變量。但是因?yàn)殪o態(tài)變量生命周期太長(zhǎng),并且不易被系統(tǒng)回收,所有如果使用不合理,就會(huì)適得其反,從而造成大量?jī)?nèi)存的浪費(fèi)。因此建議在全部符合下列條件的情況下才使用靜態(tài)變量:

(1)變量所包含的對(duì)象體積較大,占用內(nèi)存較多

(2)變量所包含的對(duì)象生命周期較長(zhǎng)

(3)變量所包含的對(duì)象數(shù)據(jù)穩(wěn)定

(4)該類的實(shí)例有對(duì)該變量包含對(duì)象的共享需求

總結(jié):

盡管三者的本質(zhì)都是變量,可是使用時(shí)卻有相當(dāng)大的區(qū)別,稍不留神就可能陷入陷阱。且先記住:在一個(gè)類中,如果一個(gè)變量能夠用來描述一個(gè)類的屬性,那就定義為成員變量,否則,它就應(yīng)該定義為局部變量。而如果一個(gè)變量在全局中都能使用(某個(gè)內(nèi)容是被所有對(duì)象所共享),那么我們就可以把這個(gè)變量用static來修飾,即為靜態(tài)變量。

超強(qiáng)干貨來襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生

總結(jié)

以上是生活随笔為你收集整理的java静态局部变量_java中成员变量,局部变量,静态变量的辨析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。