본문 바로가기
개발자 기술 면접/JAVA

[JAVA] JAVA 주요 메모리 영역

by se-black 2023. 12. 29.

※ 프로그램 실행 시, JVM은 OS에서 할당받은 메모리 영역(Runtime Data Area)을 크게 세 영역으로 구분합니다.

 

메소드(Static or Method) 영역
  • JVM을 시작할 때 생성합니다.
  • static 변수, 전역변수, 코드에서 사용되는 클래스 정보 등이 올라가는 영역입니다.
  • 코드에서 사용되는 클래스들을 로더로 읽어 클래스 별로 런타임 필드 데이터, 메소드 데이터 등을 분류해 저장합니다.
  • 모든 스레드가 공유합니다.

 

힙(Heap 영역)
  • JVM을 시작할 때 생성합니다.
  • new 연산자를 통해서 생성된 객체, 배열 등이 저장됩니다.
  • 가비지 컬렉션에 의해서 메모리가 관리되어 지는 영역입니다.

 

스택(Stack) 영역
  • 스레드 별로 생성됩니다.
  • 지역변수, 함수(메소드) 등이 할당되는 LIFO(Last In First Out) 방식의 메모리 영역입니다.
728x90