반응형
ch6-22 호출 스택(call stack)
호출 스택은 모든 프로그래밍 언어에 공통적인 부분이며 중요한 부분이고,
호출 스택을 이해하지 못하면, 앞으로 배울 중요한 개념들
기본형 매개변수, 참조형 매개변수 차이라던지, 예외처리와 같은 개념들을 이해하기 어렵다.
스택(stack) : 밑이 막힌 상자. 위에 차곡차곡 쌓인다.
스택은 뚫린 공간으로만 넣고 뺄 수가 있다.
메서드 수행에 필요한 메모리가 제공되는 공간
메서드가 호출되면 호출스택에 메모리 할당, 종료되면 해제
main 메서드의 실행상태에서
새로운 메서드인 println 메서드를 실행하면, println 메서드가 실행상태가 되면서
main 메서드는 대기상태가 된다.
println() 메서드가 종료되면, 스택에서 사라지면서, main 메서드가 다시 실행상태가 된다.
"아래 있는 메서드가 위의 메서드를 호출한 것"
"맨 위의 메서드 하나만 실행 중, 나머지는 대기중"

나중에 멀티 스레드가면 새로운 개념을 배우겠지만,
지금까지는 하나의 스택에서는 하나의 메서드만 실행중이라고 생각하자
예제 6-5

3) println 스택에서 자기가 사용했던 메모리를 반환하고 종료한다.
4) main 메서드가 실행상태 > 더 이상 실행할 것이 없으면
5) 종료되면서 main 메서드도 메모리를 반환하고 종료한다.
반응형
'자바의정석' 카테고리의 다른 글
[자바의 정석 - 기초편] ch6-24,25 참조형 매개변수, 참조형 반환타입 (0) | 2022.03.08 |
---|---|
[자바의 정석 - 기초편] ch6-23 기본형 매개변수 (0) | 2022.03.08 |
[자바의 정석 - 기초편] ch6-20,21 return문, 반환값 (0) | 2022.03.08 |
[자바의 정석 - 기초편] ch6-17~19 메서드호출 (0) | 2022.03.08 |
[자바의 정석 - 기초편] ch6-14~16 메서드란? 메서드의 선언부와 구현부 (0) | 2022.03.08 |