[JAVA]変数2-変数のスキャン
変数のスキャン
変数のスキャン
Javaの変数は、宣言された場所(ブロック)とキーワードによって参照可能な範囲とライフサイクルを決定します.これは主にローカル変数、インスタンス変数、クラス変数に分けられます.
ローカル変数
ローカル変数(領域変数)は、クラスやオブジェクトのメソッドブロックや初期化ブロックなど、ブロック内部でのみ使用される変数です.
ライフサイクル
ブロックを離れると、ローカル変数はライフサイクルを終了し、呼び出すことはできません.これは、メソッドブロックを含むすべてのブロックに適用されます.
ローカルのデフォルト変数はデフォルト値を初期化しません.(ゴミ値としては使用できません)そのため、明示的に初期化する必要があります.そうしないと、コンパイルエラーが発生します.
宣言された基本形状変数は、スレッドのスタックメモリに格納され、ライフサイクルの終了時にメモリから削除されます.
インスタンス変数
インスタンス変数とは、クラスの動的属性として宣言された変数、および
ライフサイクル
オブジェクトが
きほんへんすう
インスタンス変数として宣言される基本変数の初期値は、
クラス変数
クラス変数(静的変数)は、
ライフサイクル
クラス変数は、作成したクラスのロード中にメモリを追加します.したがって、クラスを参照しない場合、
静的プロパティはオブジェクトではなくクラスに依存するため、同じクラスで作成されたすべてのオブジェクトの値が共有されます.また、オブジェクトに依存しないため、オブジェクトを作成することなく呼び出すことができます.
変数のスキャン
Javaの変数は、宣言された場所(ブロック)とキーワードによって参照可能な範囲とライフサイクルを決定します.これは主にローカル変数、インスタンス変数、クラス変数に分けられます.
ローカル変数
ローカル変数(領域変数)は、クラスやオブジェクトのメソッドブロックや初期化ブロックなど、ブロック内部でのみ使用される変数です.
ライフサイクル
ブロックを離れると、ローカル変数はライフサイクルを終了し、呼び出すことはできません.これは、メソッドブロックを含むすべてのブロックに適用されます.
for(int i = 0 ; i < N ; i++)
{
int cnt = i;
}
//컴파일 에러, 두 변수 모두 for 블럭 이후 소멸됨
System.out.println(i + cnt);
きほんへんすうローカルのデフォルト変数はデフォルト値を初期化しません.(ゴミ値としては使用できません)そのため、明示的に初期化する必要があります.そうしないと、コンパイルエラーが発生します.
宣言された基本形状変数は、スレッドのスタックメモリに格納され、ライフサイクルの終了時にメモリから削除されます.
インスタンス変数
インスタンス変数とは、クラスの動的属性として宣言された変数、および
static
キーワードのないクラスの変数属性を指す.ライフサイクル
オブジェクトが
new
キーワードで作成されると、インスタンス変数はお尻にメモリを割り当てます.オブジェクトはライフサイクルとともに使用され、オブジェクトが期限切れでGCで回収されたときにメモリから削除されます.きほんへんすう
インスタンス変数として宣言される基本変数の初期値は、
false
または0
です.クラス変数
クラス変数(静的変数)は、
static
キーワードを作成することによって静的に宣言される変数です.ライフサイクル
クラス変数は、作成したクラスのロード中にメモリを追加します.したがって、クラスを参照しない場合、
GC
は回収され、クラスは破棄される.静的プロパティはオブジェクトではなくクラスに依存するため、同じクラスで作成されたすべてのオブジェクトの値が共有されます.また、オブジェクトに依存しないため、オブジェクトを作成することなく呼び出すことができます.
class A{
static int a;
}
//...
A var1 = new A();
A var2 = new A();
var1.a++;
var2.a++;
//2
System.out.println(var1.a);
//2
System.out.println(var2.a);
//2
System.out.println(A.a);
Reference
この問題について([JAVA]変数2-変数のスキャン), 我々は、より多くの情報をここで見つけました https://velog.io/@tomato2532/JAVA-변수형テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol