목표

자바 소스 파일 (.java)을 JVM으로 실행하는 과정 이해하기

학습 내용


JVM (Java Virtual Machine)

우리는 Java, Kotlin, Scala, Clojure, Groovy등의 언어를 배우다보면 'JVM' 이라는 단어를 만나게 됩니다.

JVM이란 Java Virtual Machine의 약자로, 위 언어들은 JVM 기반의 언어들 입니다.

JVM의 역할은 애플리케이션의 코드를 클래스 로더를 통해 읽어 들여 실행하는 것입니다. 또한, OS와 언어 사이의 중개자 역할을 수행하여, JVM 기반 언어들이 OS에 구속되지 않는 이식성을 제공합니다. 그리고 가장 중요한 메모리 관리, GC(Garbage Collection)를 수행합니다.

JVM은 스택 기반 가상머신으로 레지스터 기반과 달리 명령어에 대해 피연산자와의 연산한 결과를 스택에 저장합니다.

Stack vs Register 기반 가상머신