[JAVA] 호출 스택(call stack)

2021. 7. 16. 19:08·Computer Science/Programming Language

stack이란? 

밑이 막히고 위가 뚫린 상자라고 생각하면 된다. 위에 차곡 차곡 쌓인다. 

따라서 꺼낼때는 제일 위에있는 것부터 차례로 꺼낸다. 

★ 중간에 끼워 넣거나 아래 있는 것을 빼낼 수 없다

 

call stack이란?

메서드 수행에 필요한 메모리가 제공된 공간으로,

메서드가 호출되면 호출 스택에 메모리를 할당하고 종료 시 해제 한다. 

 

예시로 설명하자면.. 

1. 호출 스택에 main( )이 있음

2. main()이 println()을 호출

3. 호출 스택에 아래서부터 차례로 main( ) , println( )이 쌓여 있음

 이때, main( )은 대기상태, println( )은 실행상태 

4. println( )이 종료

5. 호출스택에 main( )만 남음

 

따라서.. 

→ 아래에 있는 메서드가 위에 있는 메서드를 호출한 것

→ 하나의 스택에서는 한개의 메서드만 실행, 나머지는 대기 상태

 

코드 분석 시, 단계별로 호출 스택을 직접 그려보면 프로그램의 실행과정을 정확히 이해할 수 있음!

 

 

저작자표시 비영리 변경금지 (새창열림)

'Computer Science > Programming Language' 카테고리의 다른 글

[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
'Computer Science/Programming Language' 카테고리의 다른 글
  • [JAVA] static 메서드와 인스턴스 메서드
  • [JAVA] 기본형 매개변수와 참조형 매개변수, 참조형 반환타입
  • [JAVA] 메서드와 return문
  • [JAVA] 자바에서의 변수 종류
BS Kwak
BS Kwak
  • BS Kwak
    Slow but steady wins the race
    BS Kwak
  • 전체
    오늘
    어제
    • 카테고리 (161)
      • Project (2)
      • Next.js (3)
      • HTML+CSS+JS (17)
      • Computer Science (139)
        • Programming Language (52)
        • 자료구조와 알고리즘 (75)
        • Digital circuit (3)
        • 기타 error (9)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    LNK2001
    해시
    런타임 에러
    leetcode
    c++error
    cmd error
    오블완
    mysql error
    티스토리챌린지
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
BS Kwak
[JAVA] 호출 스택(call stack)
상단으로

티스토리툴바