1. 지역변수와 인스턴스 변수

메모리 영역으로 들어가기 전, 변수의 종류를 알아야 한다.

Untitled

[출처] : 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이 붙지 않은 것이 인스턴스 변수이다!