05_javaSE面試題:成員變量和局部變量

題目

/**
 * 類變量:static修飾的
 * 實例變量:不是static修飾的
 *
 * 局部變量:棧
 * 實例變量:堆
 * 類變量:方法區
 * @author kevin
 * @date 2019/7/11 9:41
 */
public class Exam5 {
    static int s;//成員變量,類變量
    int i;//成員變量:實例變量
    int j;//成員變量:實例變量
    {
        int i =1;
        i++;
        j++;
        s++;
    }

    public void test(int j){
        j++;
        i++;
        s++;
    }

    public static void main(String[] args) {
        Exam5 obj1 = new Exam5();
        Exam5 obj2 = new Exam5();
        obj1.test(10);
        obj1.test(20);
        obj2.test(30);
        System.out.println(obj1.i+","+obj1.j+","+obj1.s);
        System.out.println(obj2.i+","+obj2.j+","+obj2.s);

    }
}

分析

局部變量和成員變量的區別

- 局部變量:方法體中,形參,代碼塊{} 中
-  成員變量:類方法外;類變量:static修飾 ;實例變量:沒有static修飾
-  存儲位置
    -  局部變量:棧
    - 實例變量:堆
    - 類變量:方法區

畫圖分析

結果

2,1,5
1,1,5
相關文章
相關標籤/搜索