← 질문 목록
#203깊이 0
JVM의 핵심 역할은 무엇인가?
프레임워크기초
JVM은 자바 바이트코드를 실행하는 가상 머신이다. OS로 부터 독립적인 실행 환경을 제공하여 'Write Once, Run Anywhere'를 실현한다.
- 자바 소스코드
그다음은 바이트코드(.class)입니다. 컴파일러가 변환한다
바이트코드(.class)그다음은 각 OS의 기계어입니다. JVM이 읽어 해석한다
각 OS의 기계어
컴파일러가 소스코드를 바이트코드로 변환하면, JVM은 이를 읽어 각 OS에 맞는 기계어로 바이트코드를 해석한다. 이 과정에서 메모리 관리와 최적화가 핵심이다.
가장 큰 특징은 가비지 컬렉션으로 메모리를 자동으로 관리한다는 점이다. 개발자가 직접 해제할 일이 줄어든다. 다만 누수가 없어지는 것은 아니다. 안 쓰는 객체를 어딘가에서 계속 붙들고 있으면 걷히지 않는다.
JIT 컴파일러는 자주 실행되는 코드를 기계어로 바꿔 저장한다. 이후 같은 코드는 해석 단계를 건너뛴다.