JVM은 'Java virtual machine'을 줄인 것으로 자바를 싱행하기 위한 가상 기계 라고 할 수있다.
가상기계는 소프트웨어로 구현된 하드웨어를 뜻하는 넓은 의미의 용어이며, 컴퓨터의 성능이 향상됨에 따라 점점더 많은 하드웨어들이 소프트웨어화되어 컴퓨터 속으로 들어오고 있다.
자바로 작성된 애플리케이션은 모두 이 JVM에서만 실행되기 때문에, 자바애플리케이션이 실행되기 위해서는 반드시 JVM이 필요하다.
java 애플리케이션은 JVM을 한 번 더 거치기 때문에, 그리고 하드웨어에 맞게 완전히 컴파일 된 상태가 아니고 실행 시에 interpret되기 때문에 속도가 느리다는 단점을 가지고 있다. 그러나 요즘엔 바이트코드(컴파일된 자바코드)를 하드웨어의 기계어로 바로 변환해주는 JIT컴파일러와 향상된 최적화 기술이 적용되어 속도 격차를 많이 줄였다.