JAVA 공부 - [2] JDK / JRE

Soondol·2025년 1월 13일

JDK

  • Java Development Kit
  • 자바 애플리케이션을 개발하기 위한 도구 모음
  • JDK에는 JRE(자바 런타임 환경) 뿐만 아니라 컴파일러, 디버거, 문서화 도구 등
    개발에 필요한 다양한 도구 포함
  • 주로 자바 프로그램을 작성하고 컴파일 하는데 사용됨

JDK 구성 요소

  • Java Compiler (javac)
    - 자바 소스 파일(.java)을 바이트코드(.class)로 컴파일
    - 바이트코드는 JVM이 실행할 수 있음
  • Java Runtime Environment (JRE)
    - 자바 애플리케이션을 실행하기 위한 환경
    - JVM, 자바 클래스 라이브러리, 기타 필수 파일 포함
  • Java Virtual Machine (JVM)
    - 자바 바이트코들르 실행하는 가상 머신
    - 플랫폼 독립성을 제공하여, 자바 프로그램이 다양한 운영 체제에서 실행될 수 있게함
  • Java 표준 라이브러리 (API)
    - 다양한 패키지와 클래스 라이브러리 제공
  • Development Tools
    - Javadoc : 자바 코드에서 API 문서를 생성하는 도구
    - jdb : 자바 프로그램을 디버깅하는 도구
    - javap : 바이트코드 파일을 디스어셈블하여 클래스 구조를 확인하는 도구

JDK의 주요 버전 (Java SE)

  • Java SE 8
    - 람다 표현식, 스트림 API, 날짜 및 시간 API 개선

  • Java SE 9
    - 모듈 시스템(Jigsaw), JShell 도입

  • Java SE 11
    - var 키워드, API 개선, HTTP 클라이언트 표준화

  • Java SE 17
    - record, 스위치 표현식, sealed 클래스

  • Java SE 21
    - 확장된 스코프의 가비지 컬렉션 개선, 새로운 API 도입

JRE

  • Java Runtime Environment
  • 자바 애플리케이션을 실행하기 위한 환경
  • 자바 가상 머신 (JVM), 자바 클래스 라이브러리 등이 포함되어 있어,
    자바 프로그램을 실행할 수 있도록 지원
  • 개발 도구는 포함되어있지 않음
  • 단순히 애플리케이션을 실행하는데 필요한 요소들만 포함됨

JRE 구성 요소

  • Java Virtual Machine (JVM)
    - JRE의 핵심 구성 요소로, 플랫폼 독립성을 제공
    - Java 바이트코드(.class파일) 실행
    - 인터프리터 : 바이트 코드를 기계어로 변환
    - JIT 컴파일러 : 자주 사용되는 코드의 실행속도를 높이기 위해 네이티브 코드로 컴파일
    - 가비지 컬렉션 : 메모리 관리 및 정리

  • Java 클래스 라이브러리
    - Java 프로그램에서 사용할 수 있는 표쥰 라이브러리 집합
    - 데이터구조 : List, Set, Map 등
    - 파일 I/O 처리 : java.io, java.nio
    - 네트워킹 : java.net
    - 스레드 및 동시성 : java.util.concurrent
    - 데이터베이스 연결 : java.sql

  • 클래스로더
    - 애플리케이션 실행 시 바이트코드를 메모리에 로드

JRE와 JVM, JDK 관계

  • JVM은 JRE의 핵심 구성 요소이며, 실행 환경을 제공한다.
  • JRE는 JVM과 Java 클래스 라이브러리를 포함하며, 실행 환경을 완성한다
  • JDK는 JRE에 개발도구(컴파일러, 디버거)를 추가하여 개발과 실행을 모두 지원
항목JREJDK
용도Java 애플리케이션 실행Java 애플리케이션 개발 및 실행
구성 요소JVM, Java 클래스 라이브러리JRE + 컴파일러, 디버거 등 개발 도구
대상 사용자최종 사용자개발자
설치 크기더 작음더 큼

0개의 댓글