class Variables {
// 클래스 영역
int iv; // 인스턴스 변수
static int cv; // static변수, 공유변수, 클래스 변수
void method() {
// 메서드 영역
int lv = 0; // 지역변수
}
}
변수의 종류 | 선언위치 | 생성시기 | 저장위치 |
---|---|---|---|
클래스 변수 (class variable) | 클래스 영역 | 클래스가 메모리에 올라갈 때 | Method 영역 |
인스턴스 변수 (instance variable) | 클래스 영역 | 인스턴스가 생성되었을 때 | Heap 영역 |
지역변수 (local variable) | 클래스 영역 이외의 영역 (메서드, 생성자, 초기화 블럭 내부) | 변수 선언문이 수행되었을 때 | Heap 영역 |
이때 클래스 변수와 인스턴스 변수를 묶어 멤버변수
라고도 한다.
멤버변수, 클래스 변수, 인스턴스 변수, 지역변수는 자주 사용되는 명칭이므로 헷갈리지 않도록 하자.
멤버 변수 : 메서드 밖에서 선언된 변수. (클래스 변수와 인스턴스 변수를 포함한다) 초기화를 직접 하지 않아도 자료형에 맞는 기본값으로 자동 초기화됨.
지역변수 : 메서드 내에서 선언된 변수. 반드시 초기화 필요.
(도서) 자바의 정석 기초편
자바 - 선언위치에-따른-변수의-종류-3가지
JAVA - 자바에서의 변수종류
Java - 변수 구분하기 (클래스변수/인스턴스변수/지역변수)
JAVA - 변수의 초기화란? 변수의 초기화 방법
이런 유용한 정보를 나눠주셔서 감사합니다.