인스턴스 변수(iv) , 클래스 변수(cv)선언문(변수/메서드 선언)만 가능 : 일반 함수식이나 출력문(sysout)은 위치할 수 없다.지역 변수(lv)멤버변수 라고도 함static 변수 라고도 함로컬변수 라고도 함= 를 이용해 초기화 선언을 할 수 있다.Class Car {
int wheel = 4 ; // primitive 변수의 초기화
Engine e = new Engine(); // reference 변수의 초기화
}
초기화 블럭 을 이용해 초기화 선언을 할 수 있다.생성자 를 이용해 초기화 선언을 할 수 있다.인스턴스가 생성될 때마다 초기화 되고,클래스가 처음 로딩될 때 단 한 번 초기화 된다.| 변수 유형 | 선언위치 | 사용범위 | 생성과 소멸 | 메모리 |
|---|---|---|---|---|
| 인스턴스 변수 (=멤버변수) | 클래스 내부 (멤버변수로 선언) | 클래스 내부에서 사용, private이 아닌 경우 참조변수로 다른 클래스에서 사용 가능 | 인스턴스 생성시 힙에 생성 GC가 메모리 수거시 소멸 | 힙 영역 |
| 클래스 변수 (=static변수) | 클래스 내부 (static으로 선언) | 클래스 내부에서 사용, private이 아닌 경우 클래스명으로 다른 클래스에서 사용 가능 | 프로그램 로딩시 생성 프로그램 종료시 소멸 | 데이터 영역 |
| 지역 변수 (=로컬변수) | 메서드 내부 | 메서드 내부에서만 사용 | 메서드 호출시 생성 메서드 종료시 소멸 | 스택 영역 |