Java

[Java] 자바 메모리 구조

공대생안씨 2024. 7. 9. 17:57

1. 자바 메모리 구조

  • 메서드 영역, 스택 영역, 힙 영역 3가지로 구분
  • 메서드 영역
    • 클래스 정보를 보관
  • 스택 영역
    • 실제 프로그램이 실행되는 영역
    • 메서드 실행마다 메서드가 스택 영역에 한 개씩 쌓임
  • 힙 영역
    • new 키워드로 생성한 객체(인스턴스)가 생성되는 영역 (배열 포함)

 

1-1. 메서드 영역 (Method Area)

  • 프로그램 실행에 필요한 공통 데이터 관리
  • 프로그램의 모든 영역에서 공유됨

 

  • 클래스 정보 : 클래스의 실행 코드, 필드, 메서드, 생성자 코드 등 모든 실행 코드 존재
  • static 영역 : static 변수 보관
  • 런타임 상수 풀 (참고) : 공통 리터럴 묶어서 관리

 

 

1-2. 스택 영역 (Stack Area)

  • 자바 실행 ⇒ 하나의 실행 스택 (스택 영역)생성됨

 

  • 스택 영역 : 스택 프레임이 쌓임
  • 스택 프레임 : 메서드 호출마다 하나의 스택 프레임이 쌓임 스택 프레임에는 지역 변수, 중간 연산 결과, 메서드 호출 정보 등이 포함됨 메서드 종료 시 스택 프레임 제거됨

 

 

1-3. 힙 영역 (Heap Area)

 

  • 객체(인스턴스) , 배열이 생성되는 영역
  • 가비지 컬렉션 (GC) 이 이루어지는 주요 영역