기초 JAVA 교육과정 ]JVM메모리 모델(3)
실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.
JVM메모리 모델(3)
* 스택 영역(Stack area)
- 스택(Stack)이란 일반적으로 "무엇인가 쌓아 올려가는 데이터 구조"를 가리킨다
: LIFO(Last-In-First-Out)특성
- 메소드가 호출되어 수행 될 때, 매개변수, 지역변수, 임시변수, 리턴 값 등을 저장하기 위한 공간
- 메소드 호출과 함께 메모리 공간할당, 메소드 수행을 마칠 때 시스템에 반환
: 잠시 쌓아 두는 곳
- JVM은 스택 영역을 실행중인 스레드에 따라 개별적으로 구성한다.
- MemoryMode1 Test 클래스를 로딩할 때 메모리 상태
: 자바 가상머신은 MemoryMode1 Test 클래스를 메모리에 로드
: 프로그램을 실행하기 위한 초기작업 수행
-> 클래스 구성 요소가 메소드 영역에 적재
- 자바 가상머신이 main 메소드를 호출할 때 메모리 상태
: main 메소드가 호출되면 main 메소드를 위한 스택 프레임이 할당된다.
: main 메소드 내에서 사용되는 매개변수, 지역변수 등이 main 스택 프레임에 위치하게 된다.
- main 메소드에서 sum 메소드를 호출할 때의 메모리 상태
: main 메소드에서 a, b 매개변수를 이용하여 sum 메소드를 호출 합니다.
: main 메소드에서 사용하는 a, b 변수와 sum 메소드에서 사용하는 a, b 매개변수의 이름은 같지만, 스택프레임 때문에 구분하여 상용
- sum 메소드에서 main 메소드로 리턴할 때의 메모리 상태
: sum 메소드의 수행이 끝나고 sum 메소드를 호출한 main 메소드로 되돌아 올 때, sum 메소드를 위해 할당했던 스택 프레임을 해제 합니다.
: 이렇게 함으로써 main 메소드에서 정의한 a, b, c 등과 같은 변수를 사용할 수 있도록 합니다.
'자바' 카테고리의 다른 글
기초 JAVA 교육과정 ] JVM메모리 모델(5) (0) | 2017.02.26 |
---|---|
기초 JAVA 교육과정 ] JVM메모리 모델(4) (0) | 2017.02.19 |
기초 JAVA 교육과정 ] JVM메모리 모델(2) (0) | 2017.02.19 |
기초 JAVA 교육과정 ] JVM메모리 모델(1) (0) | 2017.02.19 |
기초 JAVA 교육과정 ] 생성자 (0) | 2017.02.19 |