Skip to content

Latest commit

 

History

History
38 lines (26 loc) · 1.44 KB

11_Java_Memory_Area.md

File metadata and controls

38 lines (26 loc) · 1.44 KB

Java Memory Area


Method Area

  • JVM이 실행되면서 생기는 공간
  • Class 정보, 전역 변수 정보, Static 변수 정보가 저장되는 공간
  • Runtime Constant Pool
    • 말 그대로 상수가 저장되는 공간
  • 모든 thread에서 정보가 공유된다

Heap

  • new 연산자로 생성된 객체, Array와 같이 동적으로 생성된 객체가 저장되는 공간
  • Heap 영역에 저장된 데이터는 GC가 처리하지 않는한, 소멸되지 않는다
  • Reference Type 데이터가 저장되는 공간
  • 모든 thread에서 정보가 공유된다

Stack

  • 지역변수, method의 매개변수와 같이 잠시 사용되고 필요 없어지는 데이터가 저장되는 공간
  • LIFO (Last In First Out) 구조로, 나중에 들어온 데이터가 먼저 나간다
  • 만약 지역변수지만, Reference Type일 경우에는 Heap에 저장된 데이터의 주소값을 Stack에 저장해서 사용하게 된다
  • 기본형 (Primitive Type) 데이터가 저장되는 공간
  • Thread마다 하나씩 존재한다

PC Register

  • Thread가 생성되면서 생기는 공간
  • Thread가 어떤 명령어를 처리하고 있는지, 그 주소를 등록한다
  • JVM이 실행하고 있는 현재 위치를 저장하는 역할

Native Method Stack

  • Java가 아닌 언어 (C, C++) 로 구성된 method의 실행이 필요할 때 사용되는 공간