JVM은 Java Virtual Machine의 약자이다. Machine이라는 말이 들어가 있긴 하지만, 실제로는 소프트웨어이다. Machine이라는 말이 들어간 이유는 JVM이 실제적으로 CPU와 같은 역할을 하기 때문인 것이라고 추정된다. 프로그램은 CPU 위에서 돌아가게 된다. 따라서 C나 C++과 같은 일반적인 프로그램 언어에서 컴파일하여 생성된 코드는 바로 해당 CPU에서 실행이 가능한 코드이다. 하지만 자바 소스코드(*.java)를 컴파일한 경우 생성되는 클래스파일(*.class)은 직접 CPU에서 동작할 수 있는 코드(native code)가 아니다. 생성된 클래스파일은 중간단계의 언어라고 할 수 있는 byte code로 이루어져 있다. 바로 이 byte code를 실행시키기 위한 가상적인 ..