스택 영역
아래 코드를 실행하여 스택 영역에 어떤 변화가 있는지 확인해보자
public class JavaMemoryMain1 {
public static void main(String[] args) {
System.out.println("main start");
method1(10);
System.out.println("main end");
}
static void method1(int m1) {
System.out.println("method1 start");
int cal = m1 * 2;
method2(cal);
System.out.println("method1 end");
}
static void method2(int m2) {
System.out.println("method2 start");
System.out.println("method2 end");
}
}
결과
=> 메인이 가장 먼저 실행됐으나 가장 나중에 종료된다. 스택 구조인 것을 확인할 수 있다.
정리
- 자바는 스택 영역을 사용해서 메서드 호출과 지역 변수(매개변수 포함)를 관리한다.
- 메서드를 계속 호출하면 스택 프레임이 계속 쌓인다.
- 지역변수(매개변수 포함)는 스택 영역에서 관리한다.
- 스택 프레임이 종료되면 지역 변수도 함께 제거된다.
- 스택 프레임이 모두 제거되면 프로그램도 종료된다.
* 인프런 '김영한의 실전 자바 - 기본편'을 참고하여 작성하였습니다.
'프로그래밍언어 > Java' 카테고리의 다른 글
[Java 기본] static 변수 (0) | 2024.07.10 |
---|---|
[Java 기본] 스택 영역과 힙 영역 (0) | 2024.07.10 |
[Java 기본] 스택과 큐 자료구조 (0) | 2024.07.10 |
[Java 기본] 자바 메모리 구조 (0) | 2024.07.10 |
[Java 기본] 캡슐화(Encapsulation) (0) | 2024.07.08 |