Javaクラス-フィールド
クラスのフィールド(field)は、クラスに含まれる変数(variable)を指します.
フィールドの比較
クラス変数(static variable)
クラス領域の変数に、静的キーワードを持つ変数.
クラスはメモリ内で作成され、プログラムが終了すると破棄されます.
すなわちnewでメモリを割り当てる必要がなく使用できる.
ロード時にメモリ割り当てが行われ、[クラス名.オブジェクト]からアクセスします.
すべてのインスタンスは同じ値を共有し、値が変更されるとクラス変数に反映されます.
インスタンス変数
クラス領域にある変数に静的キーワードが含まれていない変数.
各インスタンスには独自の値があります.
インスタンスは作成時に作成され、hip領域に格納されます.インスタンスは消えたときに消えます.
インスタンスメソッドはnewでのみアクセスでき、クラスメソッドではアクセスできません.
ゾーン変数(localvariable)
初期化ブロックに存在するメソッドまたは作成者.
ブロック内で変数宣言を実行すると生成され、スタック領域に格納されます.街を離れると消えてしまいます.
フィールドの比較
クラス変数(static variable)
クラス領域の変数に、静的キーワードを持つ変数.
クラスはメモリ内で作成され、プログラムが終了すると破棄されます.
すなわちnewでメモリを割り当てる必要がなく使用できる.
ロード時にメモリ割り当てが行われ、[クラス名.オブジェクト]からアクセスします.
すべてのインスタンスは同じ値を共有し、値が変更されるとクラス変数に反映されます.
インスタンス変数
クラス領域にある変数に静的キーワードが含まれていない変数.
各インスタンスには独自の値があります.
インスタンスは作成時に作成され、hip領域に格納されます.インスタンスは消えたときに消えます.
インスタンスメソッドはnewでのみアクセスでき、クラスメソッドではアクセスできません.
ゾーン変数(localvariable)
初期化ブロックに存在するメソッドまたは作成者.
ブロック内で変数宣言を実行すると生成され、スタック領域に格納されます.街を離れると消えてしまいます.
class FieldTest {
static int classVariable = 10; // 클래스 변수 선언
int instanceVariable = 20; // 인스턴스 변수 선언
}
public class Test {
public static void main(String[] args) {
//인스턴스 생성 전에 클래스 변수 호출 가능
System.out.println(FieldTest.classVariable);
FieldTest ft = new FieldTest();; // 인스턴스 생성
//인스턴스 변수 호출
System.out.println(ft.instanceVariable);
}
}
Reference
この問題について(Javaクラス-フィールド), 我々は、より多くの情報をここで見つけました https://velog.io/@jcrs0907/fieldテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol