stack이란?
밑이 막히고 위가 뚫린 상자라고 생각하면 된다. 위에 차곡 차곡 쌓인다.
따라서 꺼낼때는 제일 위에있는 것부터 차례로 꺼낸다.
★ 중간에 끼워 넣거나 아래 있는 것을 빼낼 수 없다
call stack이란?
메서드 수행에 필요한 메모리가 제공된 공간으로,
메서드가 호출되면 호출 스택에 메모리를 할당하고 종료 시 해제 한다.
예시로 설명하자면..
1. 호출 스택에 main( )이 있음
2. main()이 println()을 호출
3. 호출 스택에 아래서부터 차례로 main( ) , println( )이 쌓여 있음
이때, main( )은 대기상태, println( )은 실행상태
4. println( )이 종료
5. 호출스택에 main( )만 남음
따라서..
→ 아래에 있는 메서드가 위에 있는 메서드를 호출한 것
→ 하나의 스택에서는 한개의 메서드만 실행, 나머지는 대기 상태
코드 분석 시, 단계별로 호출 스택을 직접 그려보면 프로그램의 실행과정을 정확히 이해할 수 있음!
'Programming Language > Java' 카테고리의 다른 글
[JAVA] static 메서드와 인스턴스 메서드 (0) | 2021.07.16 |
---|---|
[JAVA] 기본형 매개변수와 참조형 매개변수, 참조형 반환타입 (0) | 2021.07.16 |
[JAVA] 메서드와 return문 (0) | 2021.07.15 |
[JAVA] 자바에서의 변수 종류 (0) | 2021.07.13 |
[JAVA] 클래스의 정의 (0) | 2021.07.13 |