-
定義位置不同:
- 成員變數:類中方法外
- 分為類變數(static修飾)、實體變數(沒有使用static修飾)
- 區域變數:方法內、代碼塊內
- 成員變數:類中方法外
-
默認值不同:
- 成員變數:有默認初始化值
- 區域變數:沒有默認初始化值,必須顯式賦值,方可使用
-
作用范圍不同:
-
成員變數:
-
靜態變數(類變數),在本類中隨便用,在其他類中使用“類名.靜態變數"
-
非靜態變數(實體變數),在本類中只能在非靜態成員中使用,在其他類中使用“物件名.非靜態的變數"
-
-
區域變數:方法內、陳述句塊內
-
-
可用修飾符不同
- 成員變數:權限修飾符、static、final等
- 區域變數:不能用權限修飾符修飾,可以用final修飾
-
記憶體中位置不同:
- 成員變數:
- 靜態變數(類變數):方法區
- 非靜態變數(實體變數):堆
- 區域變數:堆疊
- 成員變數:
-
生命周期不同:
- 成員變數:
- 靜態變數(類變數):和類相同
- 非靜態變數(實體變數):和所屬的物件相同,每一個物件是獨立的
- 區域變數:從變數初始化到變數所在的方法或陳述句塊執行結束
- 成員變數:
變數使用注意:
- 區域變數定義后,必須顯式賦值才能使用,因為系統不會為區域變數執行初始化操作,這就意味著,定義區域變數后,系統并沒有為這個變數分配記憶體空間,直到程式為這個變數賦值時,系統才會為區域變數分配記憶體,并將初始值保存到該記憶體中
- 基本資料型別區域變數:直接把這個變數的值保存到該變數所對應的記憶體中,
參考資料型別區域變數:變數對應記憶體中保存的是地址,通過該地址參考堆中的資料 - 堆疊記憶體中的變數無需垃圾回收器回收,其往往隨方法或代碼塊的運行結束而結束
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/59826.html
標籤:Java
