JAvaでのローカル変数、メンバー変数、静的変数


ローカル変数、メンバー変数、静的変数(グローバル変数)の定義、役割ドメインまたは宣言サイクル、アクセス権、デフォルト値、メモリの割り当ての違いについて説明します.
ローカル変数
メンバー変数(インスタンス変数)
静的変数(クラス変数またはグローバル変数)
宣言または定義
メソッドボディ(メソッド、構築メソッドまたはコードブロック)の内部、すなわち「{}」に宣言
宣言はクラス内で、メソッドボディ(メソッド、構築メソッドまたはコードブロック)の外にあります.
クラスでstaticキーで宣言し、メソッドボディ(メソッド、構築メソッド、コードブロック)の外
役割ドメインまたはライフサイクル
メソッドまたはブロックが実行されると作成され、「{}」が実行されると解放されます.
インスタンス変数の作成時に作成、オブジェクトの破棄時に解放
クラスが何個のオブジェクトを作成しても、クラスはクラス変数のコピーのみを持ち、プログラムが開始されると作成され、終了されると解放されます.
アクセス権
修飾子は使用できません.メソッドボディに表示されます.
修飾子、public修飾子クラスが表示され、private修飾本クラスが表示されます.
修飾子はありますが、publc/private、final、staticタイプの定数に修飾されることが多いです.
初期化値またはデフォルト
デフォルト値はありません.割り当てを初期化する必要があります.
デフォルト値、参照タイプnull、その他は基本データ型デフォルト値
デフォルト値、参照タイプnull、その他は基本データ型デフォルト値
メモリ割当て
ローカル変数は、メソッド呼び出し時にスタックメモリ領域に存在します.
メンバー変数は、クラスがインスタンス化された後、スタックメモリに存在します.
静的変数はメモリの静的ストレージ領域に格納されます.
ローカル変数の例:
public class TestPeople {
    public void people() {
        int age = 0;
        //int age;  //          
        age = age + 18; //       initialized 
        System.out.println("age=" + age);
    }
}

メンバー変数、静的変数の例:
public class TestPeople {
    public String name; //    
    private int age;//      
    public static String sex=" "; //    
    private static final String BIRTHDAY="xx xx "; //  
}

注意:静的変数は、クラスの名前で呼び出すことができます.
TestPeople.sex