[Java 문법 종합반]2주차 2장

기 원·2025년 2월 26일

Java 문법 종합반

목록 보기
4/9

1. JVM 메모리 영역

1. JVM 메모리 구조

  1. Java 메모리 구조는 크게 3가지
    • Method Area
      1. 프로그램 시작 시 정보가 저장
      1. 클래스 정보가 올라가는 곳
      2. 클래스의 메서드 정보, static 변수 등이 저장
      3. 모든 객체가 공유하는 공용공간
    • Stack Area
      1. 선입후출(LIFO) 구조
      1. 메서드가 호출될 시 새로운 스택프레임이 생성
      2. 가장 최근에 호출된 메서드가 먼저 실행
      3. 메서드 실행이 끝나면 스택에서 제거
    • Heap Area
      1. new키워드로 생성된 객체가 저장
      2. 객체의 실제 데이터가 저장되고, 데이터 주소는 stack에 저장

  1. 코드 실행 시각화 도구
    https://cscircles.cemc.uwaterloo.ca/java_visualize/
  1. Method(static)
    • 프로그램이 실행되면 모든 .jvav 파일의 데이터가 Method(static)영역에 저장
    • 프로그램 실행 시점에 한번만 저장
    • Method영역에 저장된 데이터는 프로그램 전체에 공용으로 활용
    • static으로 선언된 변수와 메서드들이 이 공간에 위치
  2. Heap
    • new키워드로 생선된 객체는 heap에 저장
  3. Stack
    • 메서드가 호출될 때마다 Stack영역에 메모리가 할당
    • 하나의 스택프레임에 각 메서드의 지역변수가 저장
    • LIFO 구조
    • 메서드가 시작되면 추가되고 메서드가 종료되면 사라지는 구조
    • 특정 메서드가 실행되면 해당 메서드의 정보와 변수가 Stack에 저장되고 메서드 실행이 끝나면 그 메모리는 자동으로 제거
    • 메서드 내에 선언된 지역변수들이 저장되는 공간
profile
노력하고 있다니까요?

0개의 댓글