1. JVM이란 무엇인가
JVM은 자바 프로그램을 실행하기 위한 가상 머신이다. 자바 코드는 OS에서 직접 실행되지 않고, JVM 위에서 실행된다.
이 구조 덕분에 자바는 다음 특성을 갖는다.
- OS에 독립적
- 동일한 .class 파일로 여러 환경에서 실행 가능
- Write Once, Run Anywhere
2. Java 프로그램 실행 흐름
- .java
- javac
- .class (바이트코드)
- JVM
컴파일 결과는 기계어가 아닌 바이트코드이다. JVM이 이 바이트코드를 해석하거나 컴파일해서 실행함.
3. JVM의 전체 구성 요소

- Class Loader
- Runtime Data Areas
- Execution Engine
-> Class Loader로 부터 모든 것이 시작된다.
4. Class Loader의 역할
Class Loader는 .class 파일을 JVM 메모리에 적재하는 역할을 한다
특징
- 프로그램 시작 시 전부 로딩하지 않음
- 필요한 시점에 로딩
클래스 로딩 단계
- Loading: 클래스 파일 읽기
- Linking : Verification, Preparation, Resolution
- 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 |