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

weixin_34249678發表於2017-03-23
  • 在類中的位置不同
    成員變數——類中方法外
    區域性變數——方法內或者方法宣告上
  • 在記憶體中的位置不同
    成員變數——堆記憶體
    區域性變數——棧記憶體
    靜態變數——方法區的靜態區
  • 生命週期不同
    成員變數——隨著物件的存在而存在,隨著物件的消失而消失
    區域性變數——隨著方法的呼叫而存在,隨著方法的呼叫完畢而消失
    靜態變數——靜態變數是隨著類的載入而載入,隨著類的消失而消失
  • 初始化值不同
    成員變數——有預設的初始化值
    區域性變數——沒有預設的初始化值,必須先定義,賦值,才能使用

注意:成員變數和名稱可以不可和區域性變數一樣呢?
答案當然是可以的,但是使用的時候要注意,先找小範圍,再找大範圍

關於成員變數預設初始化值

public class Test {
    private int i;
    private static int j;
    public static void main(String[] args) {
        Test test = new Test();
        System.out.println(test.i+"---------"+test.j);
    }
}
輸出:
0---------0

相關文章