Java & Spring/자바가상머신(JVM)

JVM이란 무엇이고, 어떻게 실행되는가

승주우에요 2026. 1. 6. 09:42

1. JVM이란 무엇인가

JVM은 자바 프로그램을 실행하기 위한 가상 머신이다. 자바 코드는 OS에서 직접 실행되지 않고, JVM 위에서 실행된다. 

이 구조 덕분에 자바는 다음 특성을 갖는다.

  • OS에 독립적 
  • 동일한 .class 파일로 여러 환경에서 실행 가능
  • Write Once, Run Anywhere

2. Java 프로그램 실행 흐름

  1. .java
  2. javac
  3. .class (바이트코드)
  4. JVM

컴파일 결과는 기계어가 아닌 바이트코드이다. JVM이 이 바이트코드를 해석하거나 컴파일해서 실행함.

 

3. JVM의 전체 구성 요소

  • Class Loader
  • Runtime Data Areas
  • Execution Engine

-> Class Loader로 부터 모든 것이 시작된다.

 

4. Class Loader의 역할

Class Loader는 .class 파일을 JVM 메모리에 적재하는 역할을 한다

특징

  • 프로그램 시작 시 전부 로딩하지 않음
  • 필요한 시점에 로딩

클래스 로딩 단계

  1. Loading: 클래스 파일 읽기
  2. Linking : Verification, Preparation, Resolution
  3. Initialization : static 변수 명시적 초기화, static 블록 실행

📌 여기서 전에 배운 개념과 연결

  • static 변수는 클래스 로딩 시 생성
  • static 블록은 이 시점에 단 한 번 실행

 

5. Execution Engine 개요

Execution Engine은 실제로 코드를 실행한다.

  • Interpreter: 한 줄씩 해석
  • JIT Compiler : 반복되는 코드를 네이티브 코드로 변환
  • GC: 메모리 관리

 

'Java & Spring > 자바가상머신(JVM)' 카테고리의 다른 글

Garbage Collection과 메모리 누수  (0) 2026.01.06
JVM 메모리 구조  (0) 2026.01.06