JVM
- 기계어
- 2진수로 된 바이너리로 작성된 언어
- 각각 번역해줘야하는 문제를 해결하기 위해 만들어진것
- 바이트코드를 실행할 컴퓨터에 깔린 JVM에 갖다주면 그 컴퓨터가 이 프로그램을 실행할 때 이 JVM이 바이트코드를 그때그때 기계어로다가 통역을 해주는 것
- 자바로 짜서 컴파일한 소프트웨어들이 JVM이 깔린 어떤 종류의 컴퓨터에서든 돌 수 있게 해주는것
JRE
- Java Runtime Environment의 약자
- 자바 런타임 환경
- 어떤 컴퓨터든 JRE만 깔리면 자바로 작성한 프로그램을 돌릴 수 있다.
- JRE는 JVM을 포함하고 있다.
JDK
- Java Development Kit 자바 개발 도구의 약자
- JDK도 JRE 즉 자바의 런타임때 필요한 요소들도 포함
- 추가로 JDK에는 자바 코드를 컴파일할때 쓰는 javac 자바를 디버깅할 때 쓰는 jdb 서로 연관있는 클래스들을 하나의 JAR파일로 묶어주는 jar등 최종사용자가 안니 프로그래머들을 위한 기능들도 포함하고있다.