본문 바로가기

프로그래밍 언어/JAVA

JAVA 입문 - 변수 유효 범위

지난 글: [프로그래밍 언어/JAVA] - JAVA 입문 - static 변수

 

변수 유효 범위

더보기

지금까지 배운 세 가지 변수들은 지역 변수, 멤버 변수, static 변수이다.

변수는 어디에 어떻게 선언되느냐에 따라 유효 범위(scope)가 달라진다.

 

지역 변수의 유효 범의

지역 변수는 함수나 메서드 내부에 선언하기 때문에 함수 밖에서는 사용할 수 없다.

따라서 하나의 함수에 선언한 지역 변수는 다른 함수에서 사용할 수 없다.

지역 변수가 생성되는 메모리를 스택이라고 한다.

스택에 생성되는 변수는 함수가 호출될 때 생성되었다가 함수가 반환되면 할당되었던 메모리 공간이

해제되면서 함께 없어진다.

 

멤버 변수의 유효 범위

멤버 변수는 인스턴스 변수라고도 한다. 클래스가 생성될 때 힙 메모리에 생성된다.

힙에 생성된 인스턴스가 가비지 컬렉터에 의해 수거되면 메모리에서 사라진다.

따라서 클래스 내부의 여러 메서드에서 사용할 변수는 멤버 변수로 선언하는 것이 좋다.

 

static 변수의 유효 범위

사용자가 프로그램을 실행하면 메모리에 프로그램이 생성된다. 

이때 프로그램 영역 중 데이터 영역이 있는데, 이 영역에 상수나 문자열, static 변수가 생성된다.

static 변수는 클래스 생성과 상관 없이 처음부터 데이터 영역 메모리에 생성된다.

따라서 인스턴스 변수와 static 변수는 사용하는 메모리가 다르다.

생성된 static 변수는 private으로 선언한 것이 아니라면 클래스 외부에서도 객체 생성과

무관하게 사용할 수 있다.

static 변수는 프로그램이 시작할 때 부터 메모리에 생성되어 끝날 때 까지 존재하기에

너무 큰 수나 static 변수를 많이 사용하지 않는 것이 좋다.

 

변수는 특성에 맞게 선언해서 사용해야 효율적인 프로그래밍을 할 수 있다.

 

참고 서적: 자바 프로그래밍 입문 - 박은종

'프로그래밍 언어 > JAVA' 카테고리의 다른 글

JAVA 입문 - 배열  (0) 2022.05.15
JAVA 입문 - 싱글톤 패턴  (0) 2022.05.14
JAVA 입문 - static 변수  (0) 2022.05.13
JAVA 입문 - 객체 간 협력  (0) 2022.05.12
JAVA 입문 - this 예약어  (0) 2022.05.11