java中就沒有全域性變數這個概念,只分為成員變數和區域性變數。
但是,很多人學習都是先學習的C語言,C語言中存在全域性變數這個概念,所以,大家對於Java中的成員變數有時候也稱之為全域性變數,同時也存在如下的一個約定俗成的小區別
使用static 關鍵字進行宣告的變數叫做全域性變數
在函式外面定義的變數叫做成員變數
成員變數
區域性變數
靜態變數(也叫做類變數,類屬性)
由static修飾的變數稱為靜態變數,其實質上就是一個全域性變數。如果某個內容是被所有物件所共享,那麼該內容就應該用靜態修飾;沒有被靜態修飾的內容,其實是屬於物件的特殊描述。
成員變數和靜態變數的區別
1.兩個變數的生命週期不同
2.呼叫方式不同
3.別名不同
4.資料儲存位置不同
java中就沒有全域性變數這個概念,只分為成員變數和區域性變數。
成員變數:Static修飾成為類變數或靜態變數,還有就是方法外的變數。生命週期與類相同。區域性變數:就是方法中的變數。生命週期就是再次方法中。但是,很多人學習都是先學習的C語言,C語言中存在全域性變數這個概念,所以,大家對於Java中的成員變數有時候也稱之為全域性變數,同時也存在如下的一個約定俗成的小區別
使用static 關鍵字進行宣告的變數叫做全域性變數
在函式外面定義的變數叫做成員變數
成員變數
成員變數定義在類中,在整個類中都可以被訪問。成員變數隨著物件的建立而建立,隨著物件的消失而消失,存在於物件所在的堆記憶體中。成員變數有預設初始化值。區域性變數
區域性變數只定義在區域性範圍內,如:函式內,語句內等,只在所屬的區域有效。區域性變數存在於棧記憶體中,作用的範圍結束,變數空間會自動釋放。區域性變數沒有預設初始化值 在使用變數時需要遵循的原則為:就近原則首先在區域性範圍找,有就使用;接著在成員位置找。靜態變數(也叫做類變數,類屬性)
由static修飾的變數稱為靜態變數,其實質上就是一個全域性變數。如果某個內容是被所有物件所共享,那麼該內容就應該用靜態修飾;沒有被靜態修飾的內容,其實是屬於物件的特殊描述。
成員變數和靜態變數的區別
1.兩個變數的生命週期不同
成員變數隨著物件的建立而存在,隨著物件被回收而釋放。靜態變數隨著類的載入而存在,隨著類的消失而消失。2.呼叫方式不同
成員變數只能被物件呼叫。靜態變數可以被物件呼叫,還可以被類名呼叫。3.別名不同
成員變數也稱為例項變數。靜態變數也稱為類變數。4.資料儲存位置不同
成員變數儲存在堆記憶體的物件中,所以也叫物件的特有資料。靜態變數資料儲存在方法區(共享資料區)的靜態區,所以也叫物件的共享資料。