JAVA, 변수유형
static
- 여러 개의 인스턴스가 같은 메모리의 값을 공유하기 위해 사용한다
- 프로그램이 메모리에 load될때 데이터 영역의 메모리에 생성된다 —> 인스턴스의 생성과 관계없이 클래스 이름으로 직접 참조 한다
- 클래스 변수 라고도 한다
메모리
memory
| 변수유형 | 선언위치 | 사용범위 | 메모리 | 생성과 소멸 |
|---|---|---|---|---|
| 지역변수(로컬변수) | 함수 내부에 선언 | 함수 내부에서만 사용 | 스택 | 함수가 호출될 때 생성되고 함수가 끝나면 소멸함 |
| 멤버변수(인스턴스 변수) | 클래스 멤버 변수로 선언 | 클래스 내부에서 사용하고 private이 아니면 참조 변수로 다른 클래스에서 사용 가능 | 힙 | 인스턴스가 생성될 때 힙에 생성되고, 가비지 컬렉터가 메모리를 수거할 때 소멸됨 |
| static변수(클래스 변수) | static 예약어를 사용하면 클래스 내부에 선언 | 클래스 내부에서 사용하고 private이 아니면 클래스 이름으로 다른 클래스에서 사용 가능 | 데이터 영역 | 프로그램이 처음 시작할 때 상수와 함께 데이터 영역에 생성되고 프로그램이 끝나고 메모리를 해제할 때 소멸됨 |