Java 지역 변수(Local Variable)란?
지역 변수는 메서드, 생성자 또는 블록 내부에서 선언되는 변수입니다. 해당 메서드, 생성자 또는 블록에 진입하는 시점에 생성되며, 실행 흐름이 그 범위를 벗어나는 순간 자동으로 소멸됩니다.
지역 변수의 주요 특징
- 접근 제어자 사용 불가: 지역 변수에는 public, private, protected 같은 접근 제어자를 붙일 수 없습니다.
- 선언 범위 내에서만 유효: 지역 변수는 선언된 메서드, 생성자 또는 블록 내부에서만 접근할 수 있습니다.
- 스택(Stack) 메모리에 저장: 지역 변수는 내부적으로 스택 영역에 할당되며, 범위가 종료되면 메모리에서 해제됩니다.
- 사용 전 초기화 필수: 지역 변수는 기본값이 자동으로 설정되지 않으므로, 반드시 초기화한 후 사용해야 합니다.
예제 코드
다음은 메서드 내부에서 지역 변수를 선언하고 사용하는 예제입니다.
public class Demo {
public void Rank() {
int rank = 0; // 지역 변수 선언 및 초기화
rank = rank + 7;
System.out.println("Rank = " + rank);
}
public static void main(String args[]) {
Demo d = new Demo();
d.Rank();
}
}실행 결과
Rank = 7
Java에는 전역 변수(Global Variable)가 없다?
C나 C++와 달리 Java에는 전역 변수라는 개념이 존재하지 않습니다. 대신 Java에서는 다음과 같은 방식으로 전역 변수와 유사한 효과를 얻을 수 있습니다.
- 클래스 변수(정적 변수): static 키워드를 사용해 클래스 수준에서 변수를 선언하면, 모든 객체가 공유하는 변수처럼 활용할 수 있습니다.
- 인스턴스 변수: 클래스 내부, 메서드 외부에 선언된 변수로, 객체마다 독립적인 값을 가질 수 있습니다.
이러한 구조 덕분에 Java는 변수의 생명 주기와 접근 범위를 명확하게 관리할 수 있으며, 코드의 안정성과 유지보수성이 크게 향상됩니다.