JVM

  • (Java Virtual Machine) runs Java bytecode
  • JVM은 자바 프로그램이 실행되는 플랫폼에 독립적인 방식으로 작동하도록 설계된 자바 바이트코드를 실행하는 런타임 환경이다
  • 이를 통해 개발자들은 한 번 작성한 코드를 다시 컴파일하거나 수정하지 않고 어떤 하드웨어에서나 운영체제에서도 실행 시킬 수 있다. 이를 WORA(Write Once Run Anywhere)이라고 한다.
  • 기능
    • 바이트코드 로딩: 자바 컴파일러로부터 생성된 자바 바이트코드를 로드
    • 바이트코드 검증: 로드된 바이트코드가 안전한지 검증
    • 바이트코드 해석 및 실행: 로드된 바이트코드를 해당 플랫폼의 기계어로 변환하고 실행 이 과정에서 JIT (Just-In-Time) 컴파일러를 활용하여 성능을 향상시킨다.
    • 메모리 관리: JVM은 자바 프로그램이 사용하는 메모리를 관리하며, 가비지 컬렉션을 수행하여 더 이상 사용되지 않는 객체를 메모리에서 제거한다.
    • 자바 라이브러리 지원: JVM은 자바 표준 라이브러리와 통합되어 다양한 기능을 제공한다.

JRE

  •  (Java Runtime Enviroment) JVM + Libraries + Other Components
  • JVM (Java Virtual Machine)과 필수 라이브러리 및 자바 응용프로그램이 실행될 때 필요한 소프트웨어들을 포함한다.
  • JRE는 자바 프로그램을 실행하는 데 필요한 최소한의 환경을 제공하며, 자바 애플리케이션을 개발하는 데 필요한 추가 도구 (컴파일러, 디버거 등)는 포함하지 않는다.

JDK

  • (Java Development Kit) JRE + Compliers + Debugger
  • JRE과 컴파일러(javac), 디버거, 배포 도구(jar), 자동 문서 생성 도구 등 다양한 개발도구를 포함하는 자바 개발자를 위한 상업용 소프트웨어이다.
  • 종류
    • Open JDK: 자유롭게 사용, 배포 및 수정이 가능한 GNU 일반 공중 사용 허가서(GPL) v2 라이선스를 가진 JDK
    • Oracle JDK: 무료로 사용할 수 있지만 상업적으로 사용하려면 유료 라이선스를 구입해야 하는 라이선스를 가진JDK

 

+ Recent posts