728x90
호출 스택
호출 스택은 메서드의 작업에 필요한 메모리 공간을 제공한다
public static void main(String[] args) {
System.out.println("Hello");
}
- 위의 예제를 실행시키면
- JVM에 의해서 main메서드가 호출됨으로써 프로그램이 시작된다. 이때, 호출 스택에는 main메서드를 위한 메모리공간이 할당되고 main메서드의 코드가 수행되기 시작한다.
- main메서드에서 println()를 호출한 상태이다. 아직 main메서드가 끝난 것은 아니므로 main메서드는 호출스택에 대기상태로 남아있고 println()의 수행이 시작된다. println메서드에 의해 ‘Hello’가 화면에 출력된다.
- println메서드의 수행이 완료되어 호출 스택에서 사라지고 자신을 호출한 main메서드로 되돌아간다. 대기 중이던 main메서드는 println()을 호출한 이후부터 수행을 재개한다.
- main메서드에서도 더 이상 수행할 코드가 없으므로 종료되어, 호출 스택은 완전히 비워지게 되고 프로그램은 종료된다.
호출 스택의 특징
- 메서드가 호출되면 수행에 필요한 만큼의 메모리를 스택에 할당받는다.
- 메서드가 수행을 마치고 나면 사용했던 메모리를 반환하고 스택에서 제거된다.
- 호출 스택의 제일 위에 있는 메서드가 현재 실행 중인 메서드이다.
- 아래에 있는 메서드가 바로 위의 메서드를 호출한 메서드이다.
반응형
'Server > 자바의정석' 카테고리의 다른 글
[Java 입문] 매개변수 (0) | 2022.09.27 |
---|---|
[Java 입문] 메서드 (0) | 2022.09.27 |
[Java 입문] 클래스와 객체 (0) | 2022.09.27 |
[Java 입문] 다차원 배열(multi-dimensional) (0) | 2022.09.27 |
[Java 입문] 배열(Array) (0) | 2022.09.27 |