[Java]JDK, JRE, JVM을 알아보자!

Euiyeon Park·2024년 8월 27일

Java

목록 보기
1/16
post-thumbnail

해당 포스트는 Yalco님의 강의를 바탕으로 작성했습니다.
https://www.youtube.com/watch?v=iN22AgS_Chk

🪄 JDK, JRE, JVM의 포함관계

☕JDK(Java Development Kit)

Software Development Kit를 의미하는 SDK의 한 종류가 JDK라고 볼 수 있다

  • Java 개발 키트
  • Java 애플리케이션을 개발하기 위한 도구 모음

🪄 구성 요소

  • JDKJRE를 포함하고 있다.
    • Java로 프로그램을 개발하려면 JDK가 필요하고
    • 컴파일 된 Java프로그램을 실행시키려면 JRE가 필요하다.
  • JRE와 그 외에 javac, jdb, javap, javadoc 등 개발도구를 포함한다.

[참고] Java언어는 Oracle이 관리하지만(표준 및 버전 개발),
Java로 소프트웨어를 개발하고 실행하는 JDK는 다양한 회사에서 개발한다.
(Amazon, Microsoft 등)

whichjdk.com 에서 해당 JDK의 특성과 권장 용도를 확인 가능하다.


☕JRE(Java Runtime Environment)

  • Java 실행 환경, Java 런타임 환경 - 자바 어플리케이션을 실행하기 위한 환경

  • Java 프로그램을 실행시킬 때 필요한 라이브러리 APIJVM을 함께 묶어 배포되는 패키지

  • JRE는 Java 애플리케이션 실행을 위한 최소한의 환경을 제공한다.

  • JRE에는 JVM표준 라이브러리가 포함된다.

🪄 구성 요소

  • JVM표준 라이브러리(클래스 라이브러리)
  • Java API와 런타임에 필요한 라이브러리
  • 각종 설정 파일, 자바 바이트 코드 실행을 위해 필요한 요소를 포함

☕JVM(Java Virtual Machine)

  • Java 바이트 코드를 실행하는 가상 머신

🪄 참고

Java Code(.java파일) → Java Bite Code(.class 파일)로 컴파일 → JVM을 통해 실행

🪄 주요 기능과 특징

  • 컴파일된 Java 바이트 코드를 운영체제에 맞게 실행

    • Java는 OS에 종속되지 않는 특징을 가진다.
      OS에 종속되지 않고 실행되기 위해서 OS위에서 Java를 실행시킬 무언가가 필요한데, 그게 바로 Java를 실행할 수 있게 하는 가상 머신인 JVM이다.
  • Garbage Collection을 통해 메모리를 자동으로 관리한다.

  • Java 프로그램이 어떤 플랫폼에서도 동일하게 실행되도록 한다.

    • JVM올 인해 Java로 작성 시 컴파일 할 언어를 신경쓰지 않아도된다.
    • Java 프로그램을 모든 플랫폼에서 제약없이 동작하도록 한다.

🪄 구성요소

  • Class Loader - 필요한 클래스 파일을 로드한다.
  • Execution Engine - 바이트 코드를 해석하고 실행한다.
  • Garbage Collector - 더 이상 참조되지 않는 객체를 메모리에서 해제한다.

☕ 결론

JDK는 Java 프로그램을 개발하는데 필요한 도구 모음이다.
JRE는 Java 프로그램을 실행하는 환경이다.
JVM은 Java 프로그램을 실제로 실행하는 가상머신이다.

ref

tistory_inpa

Youtube_Yalco

profile
"개발자는 해결사이자 발견자이다✨" - Michael C. Feathers

0개의 댓글