JAVA

자바 JDK, JRE, JVM 간단 정리

더즈 2022. 2. 21. 20:19

자바를 컴퓨터가 알아듣기까지

컴파일

  • 인간이 이해하기 쉬운 언어를 기계어로 번역하는 과정
  • 자바 코드를 바이트 코드(=바이너리 코드) 변환해서 컴퓨터가 이해할 수 있도록 변환
  • System.out.println(“HelloWorld”) -> 01010100110100-> 컴퓨터가 이해

컴파일러

  • 컴파일 하는 프로그램

바이트 코드

  • 0과 1로 이루어진 코드, 컴퓨터가 이해할 수 있다.

01의 조합은 OS마다 다르다. (윈도우, , 리눅스)

  • 운영체제마다 “Hello World”가 실행 안될 수도 있다.
  • 그래서 C언어 같은 경우 각각 다른 컴파일러가 필요하다.

JVM

  • 자바 컴파일러가 하나 있고 각 OS로 바로 가는 것이 아니라 JVM을 거쳐서 간다. (각 OS와 호환시켜 주는 아이)
  • 자바 가상 머신의 약자 (Java Virtual Machine)
  • 자바 바이트 코드(.class 파일)를 OS에 특화된 코드로 변환
  • 바이트 코드를 실행하는 표준(JVM 자체는 표준)이자 구현체(특정 밴더가 구현한)이다.
  • JVM 밴더 : 오라클, 아마존, Azul...
  • 특정 플랫폼에 종속적

JDK > JRE > JVM

JRE

  • 자바 실행 환경의 약자 (Java Runtime Environment)
  • JRE = JVM + 자바 프로그램 실행에 필요한 라이브러리 파일 등
  • System.out.println, Scanner 이런 것들이 들어 있음
  • JVM 실행환경을 구현

JDK

  • 자바 개발 도구의 약자 (Java Development Kit)
  • JDK = JRE + 개발을 위한 도구
  • 컴파일러, 디버그 도구 등이 포함
  • 여기서 컴파일을 하고 JVM이 각 OS로 해석
  • 원래 JRE와 JDK를 따로 제공했었으나 자바 11부터 JDK만 제공

따라서 JAVA의 버전 = JDK의 버전

LTS(Long Time Support)

  • 오래 써도 되는 버전, 장기간 지원하는 버전
  • JDK8, JDK11, JDK11...

JDK에는 종류도 있다.

  • ORACLE JDK: 오라클에서 만들었으며 JDK11부터 상용으로 사용할 때 유료이다. 
  • Open JDK: 오라클 JDK와 비슷한 성능 언제나 무료