JVM의 구조

안석우(문과대학 철학)·2025년 1월 30일
0

JAVA

목록 보기
10/11

JVM(Java Virtual Machine)은 운영체제로부터 메모리를 할당 받는다. 이 할당받은 메모리의 구조에 대한 글이다.

1.Heap 영역

  • 실제로 생성된 객체(인스턴스)가 저장되는 영역.
  • 런타임시 동적으로 할당한다.(객체가 생성되면 heap영역에 할당)
  • 가비지 컬렉션의 대상이다.(Stack영역의 변수가 heap영역의 변수를 더이상 참조하지 않으면 가비지 컬렉션의 대상이 된다.)
  • 모든 스레드가 공유한다.

2.Stack 영역

  • 자바 프로그램에서 메소드가 호출될 때 메소드의 스택 프레임이 저장된다.
  • JVM은 자바 프로그램에서 메소드가 호출되면, 메소드의 호출과 관계되는 지역 변수와 매개변수를 스택 영역에 저장한다
  • 객체의 참조값이 저장됨. 실제 객체는 heap에 저장.
  • 이렇게 스택영역에 저장되는 메소드 호출정보를 스택 프레임이라고 한다.

3.Method영역(클래스 영역,static영역)

  • 자바 프로그램에서 사용되는 클래스에 대한 정보와 함께 static변수가 저장되는 영역이다.
  • 클래스 구조, static변수, 상수 등의 정보가 저장됨
  • 프로그램 시작 전에 로드되고 프로그램 종료시 소멸된다.

참조: https://www.devkuma.com/docs/jvm/memory-structure/

0개의 댓글