- JVM(Java Virtual Machine) : 자바 컴파일러가 자바 소스코드를 읽어들여 자바 바이트코드로 변환시키고 그 자바 바이트코드를 실행하는 실행기로써 자바 바이트코드를 받고 기계어로 컴퓨터에게 전달하는 역할을 한다.
** 자바 바이트코드를 만드는데 꼭 자바를 쓸 필요는 없다. (ex.코틀린)
- JRE(Java Runtime Enviroment) : 컴퓨터의 운영체제 소프트웨어 상에서 실행되고 클래스 라이브러리 및 특정 Java 프로그램이 실행해야 하는 기타 리소스를 제공하는 소프트웨어 계층이다.
- JDK(Java Development Kit) : Java 환경에서 돌아가는 프로그램을 개발하는 데 필요한 툴들을 모아놓은 소프트웨어 패키지이다.
** JRE는 JVM을 포함하고 JDK는 JRE를 포함한다.