java静态局部变量_java中成员变量,局部变量,静态变量的辨析
轉自百度:https://baijiahao.baidu.com/s?id=1625360816541592483&wfr=spider&for=pc
1.java中成員變量,局部變量,靜態變量的辨析
Java中的變量大致分為 成員變量 和 局部變量 兩大類。
成員變量:在類體里面定義的變量稱為成員變量;
如果該成員變量有 static 關鍵字修飾,則該成員變量稱為靜態變量或類變量;
如果該成員變量沒有 static 關鍵字修飾,則該成員變量被稱為非靜態變量或實例變量。
局部變量:形參、方法內定義的變量、代碼塊中定義的變量,都屬于局部變量。
下表是三者的區別:(下面這張圖很經典好好理解)注:不要的把成員變量和靜態變量混淆在一起,兩者區別還是很大的
2.三者的根本區別在于:所在存儲位置的不同決定了不同的特性。
下面主要介紹一下靜態變量的利弊:
特點:
1、想要實現對象中的共性數據的對象共享。可以將這個數據進行靜態修飾。
2、被靜態修飾的成員,可以直接被類名所調用。也就是說,靜態的成員多了一種調用方式。類名.靜態方式。
3、靜態隨著類的加載而加載。而且優先于對象存在。
弊端:
1、有些數據是對象特有的數據,是不可以被靜態修飾的。因為那樣的話,特有數據會變成對象的共享數據。這樣對事物的描述就出了問題。所以,在定義靜態時,必須要明確,這個數據是否是被對象所共享的。
2、靜態方法只能訪問靜態成員,不可以訪問非靜態成員。因為靜態方法加載時,優先于對象存在,所以沒有辦法訪問對象中的成員。
3、靜態方法中不能使用this,super關鍵字。因為this代表對象,而靜態在時,有可能沒有對象,所以this無法使用。
什么時候使用靜態變量?
在程序運行期間,類中的靜態變量其內存空間對所有該類的實例是共享的,因此在某些時候,為了節省內存空間開銷,共享資源,我們可以將類中的變量聲明為靜態變量。但是因為靜態變量生命周期太長,并且不易被系統回收,所有如果使用不合理,就會適得其反,從而造成大量內存的浪費。因此建議在全部符合下列條件的情況下才使用靜態變量:
(1)變量所包含的對象體積較大,占用內存較多
(2)變量所包含的對象生命周期較長
(3)變量所包含的對象數據穩定
(4)該類的實例有對該變量包含對象的共享需求
總結:
盡管三者的本質都是變量,可是使用時卻有相當大的區別,稍不留神就可能陷入陷阱。且先記住:在一個類中,如果一個變量能夠用來描述一個類的屬性,那就定義為成員變量,否則,它就應該定義為局部變量。而如果一個變量在全局中都能使用(某個內容是被所有對象所共享),那么我們就可以把這個變量用static來修飾,即為靜態變量。
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生總結
以上是生活随笔為你收集整理的java静态局部变量_java中成员变量,局部变量,静态变量的辨析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 影驰电竞内存,游戏加速利器
- 下一篇: java 反射 找不到方法_Java获取