기초 JAVA 교육과정 ]JVM메모리 모델(3)

 

기초 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 등과 같은 변수를 사용할 수 있도록 합니다.

+ Recent posts