1. 程式人生 > 其它 >成員變數與區域性變數的區別

成員變數與區域性變數的區別

(1)宣告的位置不同

成員變數:類中方法外

區域性變數:(1)方法的()中,即形參(2)方法體的{}的區域性變數(3)程式碼塊{}中

(2)儲存的位置不同

成員變數:

​ 如果是靜態變數(類變數),在方法區中

​ 如果是非靜態的變數(例項變數),在堆中

區域性變數:棧

(3)修飾符不同

成員變數:4種許可權修飾符、static等多種修飾符

區域性變數:不能有任何修飾符

(4)作用域

成員變數:

​ 如果是靜態變數(類變數),在本類中隨便用,在其他類中使用“類名.靜態變數"

​ 如果是非靜態的變數(例項變數),在本類中只能在非靜態成員中使用,在其他類中使用“物件名.非靜態的變數"

區域性變數:有作用域,出了作用域就不能使用

(5)生命週期

成員變數:

​ 如果是靜態變數(類變數),和類相同,隨著類的載入而分配,隨著的類的解除安裝才消亡。

​ 如果是非靜態的變數(例項變數),和所屬的物件相同,每一個物件是獨立。物件建立時,才在堆中分配記憶體,隨著物件被垃圾回收而消亡。

區域性變數:每次方法呼叫執行都是新的,而且僅在作用域範圍內有效。