[Java] OOP_호출 스택(Call Stack)
호출 스택(Call Stack)*
모든 프로그램언어에서 공통적인 것, 중요한 개념*
메소드 수행에 필요한 메모리가 제공되는 공간
Stack의 정의
모든 프로그램언어에서 공통적인 것, 중요한 개념*
메소드 수행에 필요한 메모리가 제공되는 공간
Call Stack 이해를 돕기위한 Stack의 정의
Stack:밑이 막힌 상자, 위에 차곡차곡 쌓인다. 꺼낼 때는 맨 위에 있는 것부터 차곡차곡 뺀다.
JVM의 메모리 구조
메소드 영역(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에 어떤 변화가 일어나는지 직접 그려봐야 한다.
Author And Source
이 문제에 관하여([Java] OOP_호출 스택(Call Stack)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jeong11/Java-OOP-callstack저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)