호출 스택 (Call stack)

김설영·2022년 3월 27일
0

그림 출처 : 자바의 정석 - 남궁성 선생님 유튜브

스택 (Stack)

  • 밑이 막힌 상자. 위에 차곡 차곡 쌓인다.
  • 위에서 부터 꺼낸다.
  • Last In, First Out

호출 스택 (Call Stack) -> 메서드가 쌓인다!

  • 메서드 수행에 필요한 "메모리"가 제공되는 공간
  • 메서드 호출 -> 호출 스택에 메모리 할당 -> 종료 시 해제
    1. main() 메서드가 호출되어 스택에 쌓인다 (실행 상태)
    2. main() 메서드가 println() 메서드를 호출한다
    3. println() 메서드가 main 메서드 위에 쌓인다
    4. main() 메서드는 대기 상태가 되고, println() 메서드는 실행 상태가 된다
    5. println() 메서드가 종료되면, 스택에서 사라진다
    6. main() 메서드가 다시 실행 상태가 된다
  • 아래에 있는 메서드가 위의 메서드를 호출한 것이다
  • Stack을 보면 메서드들 간의 호출 관계를 파악할 수 있다
  • 하나의 Stack에서는 맨 위의 메서드 "하나"만 실행 중이고, 나머지는 대기 중이다

매개변수의 타입

  1. 기본형 매개변수 : 변수의 값 읽기만 가능. (Read Only)
    • ex : int x, long x ...
  2. 참조형 매개변수 : 변수의 값 읽고 변경 가능. (Read & Write)
    • ex : Data d, Tv t, Mymath m... (객체의 주소값)

참조 타입 & 참조 변수

반환 타입

  1. 기본형 반환타입 : 값을 반환
  2. 참조형 반환타입 : 객체 또는 객체의 "주소"를 반환
    • ex : Data copy (Data d){} , Tv channel (Tv t){} ...

Static 메서드

  • 같은 클래스 내에 있는 메서드는 참조 변수를 생략할 수 있다.
  • Static 메서드는 객체 생성 없이 호출이 가능하다.
profile
블로그 이동하였습니당! -> https://kimsy8979.tistory.com/

0개의 댓글