JVM
📌 JVM이란?
info
JVM(Java Virtual Machine)은 Java 바이트코드를 실행하기 위한 가상 머신이다.
Java 프로그램은 JVM 위에서 동작하며, 하나의 코드가 여러 운영체제에서 실행될 수 있도록 해준다.
✅ JVM의 핵심 역할
역할 | 설명 |
---|---|
바이트 코드 실행 | 컴파일된 .class 파일 실행 |
메모리 관리 | Heap, Stack, Method Area 등 자동 관리 |
실행 환경 제공 | OS에 따라 독립적인 자바 환경 구성 |
런타임 검증 | 바이트코드의 안전성 검증 및 보안 확보 |
예외 처리 | 런타임 예외 및 오류 처리 시스템 제공 |
✅ JVM 아키텍처 구성도
┌────────────┐
│ ClassLoader│ ← .class 파일 로딩
└────┬───────┘
│
┌────▼──────┐
│ Bytecode │ ← 바이트코드 검증 및 실행
│ Verifier │
└────┬──────┘
│
┌────▼─────────────┐
│ Execution Engine │ ← 인터프리터 / JIT 컴파일러
└────┬──────────────┘
│
┌────▼────────────┐
│ Runtime Data Area│ ← Stack, Heap, PC, Method Area
└──────────────────┘
✅ Runtime Data Area 구성
영역 | 설명 |
---|---|
Heap | 객체 및 배열 저장 공간 (GC 대상) |
Stack | 메서드 호출 프레임, 지역 변수 저장 |
PC Register | 현재 실행 중인 명령 주소 |
Method Area | 클래스, 메서드, static 변수 정보 저장 |
Native Method Stack | C/C++ 등 네이티브 메서드 실행 시 사용 |
✅ JVM의 동작 흐름
- 자바 파일 컴파일 →
.class
바이트코드 생성 - JVM의 ClassLoader가 바이트코드 로딩
- Verifier가 바이트코드 유효성 검사
- Execution Engine이 바이트코드 실행 (JIT 또는 인터프리터)
- GC, 예외 처리, 메모리 관리 등 JVM 내부 메커니즘 작동
✅ JVM vs JRE vs JDK
항목 | 설명 |
---|---|
JVM | Java 코드 실행 엔진 |
JRE | JVM + Java 라이브러리 |
JDK | JRE + 컴파일러(javac), 개발 도구 포함 |
✅ 기타 특징
- 플랫폼 독립성: 운영체제에 상관없이 Java 실행 가능
- 자동 메모리 관리: Garbage Collection 포함
- 보안: 클래스 로더, 바이트코드 검증 등 내장 보안
- 성능 최적화: JIT 컴파일링 기술 활용
댓글남기기