메모리 영역으로 들어가기 전, 변수의 종류를 알아야 한다.
[출처] : https://coding-factory.tistory.com/830
지역변수는 메소드나 함수 내부에서 선언된 변수를 일컫는다.
class Main {
public static void main(String[] args) {
int a = 10;
}
}
main
이라는 함수(메서드)가 실행됐고, 실행 후에 int a=10
가 실행됐다.
함수가 실행됨으로써, stack
메모리영역에 저장되고, 이는 함수가 끝나기 전까지 살아있다.
즉, 지역변수 생명주기는 함수 실행과 동시에 생성되고, 종료와 동시에 소멸한다.
main
이라는 함수가 실행됐으니 int a
가 10이라는 값을 가지고 스택에 저장되고, 바로 함수가 종료되면서 소멸한다.
인스턴스 변수 는 말 그대로 인스턴스가 생성될 때 만들어지는 변수. 인스턴스란 객체라고도 불리고 폴더라고도 불린다. 즉, 객체 변수라는 말이 인스턴스 변수와 같다고 할 수도 있다.
{
int iv;
void method() {
int lv = 0;
}
}
이렇게 있다고 치자. 여기서 int lv
는 인스턴수 변수이다. 변수의 종류는 선언된 위치에 따라서 변수가 바뀌는데, 지역변수를 제외한 변수들 중 static
이 붙지 않은 것이 인스턴스 변수이다!