[실시간 강의] JVM 구조, 메모리와 코드의 흐름

우정·2022년 11월 30일
0

[내일배움캠프] TIL

목록 보기
13/50

1. JVM 구조

  • 코드가 실행되는 과정

  • JDK 구조

    JDK : Java Development Tool + JRE(Java Runtime Environment + JVM(Java Virtual Machine))

  • JVM 구조

  • Class Loader Subsystem : .class에서 바이트코드를 읽고 메모리에 저장함
  • Memory
    • Method Area
    • Heap Area : 객체를 저장
    • Stack Area : 코드의 흐름이 스택처럼 행동을 함.
      스레드마다 런타임 스택을 만들고, 스택 프레임이라 부르는 블록을 쌓음
  • Execution Engine(실행엔진)
    • JIT 컴파일러가 반복되는 코드를 재사용해서 속도를 높임
    • GC(Garbage Collector) : 더이상 참조되지 않는 객체를 모아서 정리함
  • JNI(Java Native Interface)
    • C, C+, 어셈블리로 작성된 함수를 사용할 수 있는 방법을 제공함
    • Java에서 기본으로 제공되는 메서드에 native 키워드가 붙은 친구
  • Native Method Libraries
    • C, C++로 작성된 라이브러리

2. 클래스 로더와 static 영역

  • 클래스 로더 시스템
  • Loading
    • 클래스 로더가 .class 파일을 읽고 데이터를 “Method Area”영역에 저장함
    • Method Area에 저장하는 데이터들 : FQCN, Class, Interface, Enum, Method, Variable
  • Linking
  • Initalization
    • “Static“ 붙은 친구들 초기화. static 블럭 실행

3. Memory Area

  • Method Area : 클래식 영역, 스태틱 영역
  • Stack Area : Thread 영역
  • 메모리를 이용하는 방식
  • Static Area : 클래스와 static
  • Stack Area : methods
  • Heap Area : Instances

0개의 댓글

관련 채용 정보