변수 마다 서로 다른 유효범위와 수명을 가지며 할당되는 메모리 영역도 다르다. 각 변수의 특성에 따라 선언되는 위치가 달라 유효 범위가 다르며 필요 수명이 달라서 할당되는 메모리 공간도 다르다.
1. 멤버 변수
클래스 내부에서 사용되고 private 제어자로 선언된 멤버변수가 아니면 다른 클래스에서도 사용가능
인스턴스 생성 시 힙 메모리에 할당되며 가비지 컬렉터가 수거할 때 까지 존재
2. 지역변수
로컬 변수라고도 한다. 선언 된 메소드 내부에서만 사용된다.
메소드 호출 시 스택 메모리에 생성되었다가 호출이 끝나면 소멸된다.
3. static변수
클래스 변수라고도 한다. 클래스 내부에서 사용되고 private 제어자로 선언된 변수가 아니면 다른 클래스에서도 사용가능하다.
static변수는 클래스의 인스턴스가 생성되기 이전부터 생성되어 있다. 프로그램 시작 시 데이터 메모리에 할당되고 프로그램 종료시까지 계속 남아있다가 프로그램이 종료되면서 메모리에서 소멸된다.
'프로그래밍 언어 > Java' 카테고리의 다른 글
(Java) 25 - 배열 (0) | 2020.05.17 |
---|---|
(Java) 24 - 싱글톤 패턴 (0) | 2020.05.17 |
(Java) 22 - static 변수 (0) | 2020.05.17 |
(Java) 21 - 객체 지향 예제 - 학생, 버스, 지하철 프로그램 (0) | 2020.05.17 |
(Java) 20 - this (0) | 2020.05.17 |