변수의 범위(= 변수의 수명, 가시성)에 따라
- 인스턴스 변수 (=객체 변수) -- 클래스 정의에서 선언
- 정적 변수 (= 클래스 변수) -- 클래스 정의에서 static 키워드와 함께 선언 (프로그램과 동시에 메모리에 생성되고 프로그램이 종료되면 함께 사라짐)
- 로컬 변수 (지역변수) -- 메서드 및 if 등의 블록 내에서 선언 ( 인스턴스 변수나 정적변수가 아니면 전부 로컬 변수)
** 정적 변수나 정적 메소드는 static 메모리 영역에 존재해서 객체가 생성되기 전에 이미 할당되어 있기 때문에 여러 객체가 해당 메모리를 공유하고 객체의 생성 없이 바로 사용할 수 있다.
( 일반적으로 static 변수는 public 및 final과 함께 사용되어 public static final로 활용된다.)
728x90
'Java' 카테고리의 다른 글
[Java] 실수 float, double (0) | 2024.10.18 |
---|---|
[Java] 입력 (0) | 2024.10.18 |
[Java] 오버플로, 언더플로, BigInteger (0) | 2024.09.24 |
[Java] 자바의 메모리 구조 (1) | 2024.09.24 |
[Java] Naming Convention (0) | 2024.09.24 |