JVM(Java Virtual Machine), 자바 가상 머신
- Java로 컴파일해서 나온 결과인 어플리케이션(바이트 코드)를 실행하는 역할을 함.
모든 Java 어플리케이션은 JVM이라고 하는 가상의 컴퓨터 공간에서 실행됨.
- OS 별로 존재, 바이트 코드를 읽고 검증하고 실행.
즉, 똑같은 JAVA 바이트 코드를 OS마다 다르게 해석해주는 것으로, 하나의 결과물로 운영체제가 다른 윈도우, 맥, 리눅스에서 각각 실행했을 때 똑같은 결과가 나오는 장점이 있음.
사진 출처
JRE(Java Runtime Environment), 자바 실행 환경
- JRE = JVM + 자바 프로그램, JVM의 실행환경 구현
- 실행에 필요한 라이브러리 파일 등, JRE 그 자체로 기능이 있다기 보다는 JVM이 동작하기 위한 환경을 만드는 것임
JDK(Java Development Kit), 자바 개발 도구
Java 어플리케이션을 개발하기 위해 반드시 필요하며, 사람이 작성한 소스 코드를 번역하여 컴퓨터가 이해할 수 있는 바이트 코드로 변환하는 도구인 Java 컴파일러가 포함되어 있음
- JDK = JRE + 개발을 위한 도구
- 컴파일러, 디버그(버그를 고치는 과정) 도구 등이 포함
JVM < JRE < JDK 순서로 포함관계이며 JDK를 설치하면 JRE와 JVM도 함께 설치됨
- JDK에는 버전이 있고, 각 버전별로 새로운 기능이 추가되거나 기존 기능이 사라진다.
LTS(Long Time Support): 오래 지원되므로 오래 써도 되는 버전.
- JDK에는 종류가 있고, 기능 자체는 모두 동일하나 성능과 비용에 약간의 차이가 있을 수 있다.
Oracle JDK: 오라클에서 만든 JDK, 개인에게 무료, 기업용은 유로
Open JDK: Oracle JDK와 비슷한 성능, 언제나 무료
Ref.
공부하는 개발자 YouTube