본문 바로가기
> 프로그래밍 언어/JAVA

[ch6-22] 호출 스택(call stack)

by 자몽주스 2023. 1. 26.
728x90

스택에서 넣을 때와 꺼낼 때

스택은 위에 뚫려진 공간으로만

넣거나 뺄 수 있다

메서드가 호출되면 메소드 작업이 필요하게 되고,

메소드가 작업을 수행하는데 필요한

메모리공간이 호출스택에 만들어짐

 

작업하다가 작업이 종료되면

호출스택에서 메소드가 사용하던

메모리 공간이 제거됨

 

main 메소드가 println 메소드 호출하면

main 메소드 위에 println 메소드가 올라감

 

main메소드는 대기상태가 되고, 

println은 실행상태가 됨

 

첨에는 main메소드가 실행중이었음

println 메서드가 작업을 마치면

(println 종료)

종료되고, 스택이 사라짐

다시 main 메서드로 돌아와 

main 메서드가 실행상태가 됨

 

아래에 있는 메서드가

위의 메서드를 호출함

 

맨 위의 메서드 하나만 실행중이고,

나머지는 대기중인 것.

 

하나의 스택에선

하나의 메서드만 실행 중

3번: main메서드가 

println메서드 호출한 것

main이 대기상태가 됨

 

4번: println이 출력했으니까

사라지게 됨

main 메서드가 다시

실행상태로 바뀌게 됨

 

5번: 더 이상 실행될게

없으니 프로그램 종료.

 

728x90