프로그래밍 언어/Java
11. [Java] 변수의 종류 & 유효범위(scope)
물꼮이
2022. 2. 1. 07:51
변수의 종류 & 유효범위(scope)
| 변수유형 | 선언위치 | 사용범위 | 메모리 | 생성과 소멸 |
| 지역변수 (local변수) |
함수 내부에 선언 | 함수 내부에서만 | 스택 | 함수 호출시 생성, 함수 끝날시 소멸 |
| 멤버변수 (instance 변수) |
클래스 멤버변수로 선언 | 클래스 내부 & private이 아닐 경우 다른 클래스 포함 (with 참조변수) |
힙 | 인스턴스 생성 시 생성, '가비지 컬렉터'가 메모리 수거시 소멸 |
| static변수 (class 변수) |
클래스 내부에 (static 예약어)로 선언 |
클래스 내부 & private이 아닐 경우 다른 클래스 (with 클래스 이름) |
데이터 | 프로그램 첫 시작시 생성, 프로그램 끝나고 메모리 해제 시 소멸 |
- 지역변수는 선언한 메서드 내부 에서만 사용할 수 있지만,
- 멤버변수는 클래스의 어느 메서드에서나 사용할 수 있다. 즉, 여러메서드에서 사용하는 변수는 멤버변수로 설정
- static 변수는 여러 인스턴스에서 공통으로 사용한다. 클래스 생성과 상관없이 데이터 영역에 메모리 생성.