◇ PART · SPRING

JVM 한눈에

Spring 기초
SMHRD

학습 목표

1. JVM

OS 별 차이를 숨기는 가상 머신. 윈도우용·맥용 JVM 이 따로 있고, 자바 바이트 코드를 받아 자기 OS 명령어로 변환해 실행.

2. 실행 흐름

.java → [javac] → .class (바이트 코드) → [JVM] → OS 명령어 │ ├─ Class Loader ├─ Execution Engine (인터프리터 + JIT) └─ Garbage Collector

3. 핵심 부품

부품역할
Class Loader.class 를 메모리에 적재 (로드→검증→준비→분석→초기화)
Execution Engine인터프리터(한 줄씩) + JIT 컴파일러(자주 쓰는 부분 통째로)
GC참조 없는 객체 자동 회수. 개발자가 메모리 해제 신경 안 써도 됨
실용 팁: OutOfMemoryError 가 뜨면 GC 가 회수할 수 없는 참조가 어딘가 살아있다는 뜻. 「누가 객체를 계속 들고 있나」를 의심.

4. 커맨드라인 실습

$ javac Hello.java ← 컴파일 $ java Hello ← JVM 실행 Hello, JVM!

학습 확인 체크리스트