JVM

정재현·2022년 12월 30일
0

JVM 구조


과정

1. 우리가 작성한 코드는 JavaCompiler를 통해 binaryFile인 .class 파일로 변환된다.

Byte code로 변환되므로 컴파일 과정을 거치지 않는다.
코드가 변경되면 컴파일 과정 수행

2. 변환된 Byte code를 Class Loader가 JVM Runtime Data Area로 로딩

Runtime Data Area

  • Method 영역
    JVM이 시작될 때 생성되는 공간. Byte code가 저장됨.
    클래스, 변수, static 선언 변수가 저장된다.

  • Heap
    동적으로 생성된 객체가 저장된다. new로 생성된 인스턴스가 저장. GC의 대상이 되는 공간.

  • Stack
    지역변수, 메서드의 매개변수, 임시 사용 변수, 메서드 정보 저장 영역.

  • PC Register
    스레드가 시작될 때 생성.
    현재 수행중인 JVM 명령어 주소 저장 공간.

  • Native Method Stack
    JAVA가 아닌 다른 언어로 작성된 코드 공간.
    JNI(Java Native Interface)를 통해 호출하는 코드를 수행하기 위한 공간.

3. Execution Engine에 의해 해석

Byte code를 실행시키는 엔진

  • Interpreter
    한줄 한줄 실행

  • JIT compiler
    런타임에 한번에 실행

  • Native Method Interface
    JVM에 의해 실행되는 코드 중 네이티브로 실행하기 위한 프레임워크

  • Native Method Library
    Native Method 실행에 필요한 라이브러리

profile
back end개발자로 성장하기

0개의 댓글

관련 채용 정보