모든 프로그램언어에서 공통적인 것, 중요한 개념*
메소드 수행에 필요한 메모리가 제공되는 공간
Call Stack 이해를 돕기위한 Stack의 정의
Stack:밑이 막힌 상자, 위에 차곡차곡 쌓인다. 꺼낼 때는 맨 위에 있는 것부터 차곡차곡 뺀다.
메소드 영역(Method Area) :
클래스 정보와 클래스 변수가 저장되는 곳
호출 스택(Call Stack) :
메소드의 작업공간. 메소드가 호출되면 호출 스택에 메모리 할당, 종료되면 사용하던 메모리를 반환함
힙(Heap) :
인스턴스가 생성되는 공간. new연산자에 의해서 생성되는 배열과 객체는 모두 여기에 생성됨
class CallStackTest {
public staic void main(String[] args) {
firstMethod();
}
static void firstMethod() {
secondMethod();
}
static void secondMethod() {
System.out.println("secondMethod()");
}
}
코드를 보면서 단계별로 stack에 어떤 변화가 일어나는지 직접 그려봐야 한다.