JVM 메모리 구조

정주영·2024년 12월 14일

자바

목록 보기
8/10
post-thumbnail

자바에는 크게 Method, Stack, Heap 영역, Pc Register, Native Method Area 5가지로 구성되어 있는데 Method, Stack, Heap 3가지 영역에 대해서 코드를 보면서 이해 해보겠습니다.

Ex01.Ex01 클래스

Ex02.Ex01 클래스

Main 클래스


코드 한줄 한줄 실행 되는 결과를 같이 보도록 하겠습니다.

Method:

  • 클래스 로딩 시 클래스의 메타데이터, static 변수, static 메소드, 인스턴스 메소드 코드가 저장됩니다.
  • 여기서 패키지명 + 클래스명은 유일해야 하며, 클래스의 메타 정보와 static 멤버들은 Method 영역에만 저장됩니다.
  • 인스턴스 변수는 저장되지 않습니다.

Stack:

  • 객체를 가리키는 참조 변수(T1) 가 저장됩니다.
  • 스택 영역에는 참조값(Heap에 있는 객체의 주소)이 저장됩니다.

Heap:

  • 실제로 생성된 객체(인스턴스)가 저장됩니다.
  • 객체에는 인스턴스 변수가 포함됩니다.




Stack:

  • test 메소드로 인해 a 가 생성된 후 해당 메소드의 마지막 괄호에 온 경우 Stack 영역에서 없어진다.

profile
효율적인 시스템 설계를 고민하며, 확장성과 안정성을 갖춘 백엔드 개발자가 되길 희망합니다.

0개의 댓글