- 자바 애플리케이션을 개발하기 위한 도구 모음
- JDK에는 JRE(자바 런타임 환경) 뿐만 아니라 컴파일러, 디버거, 문서화 도구 등
개발에 필요한 다양한 도구 포함- 주로 자바 프로그램을 작성하고 컴파일 하는데 사용됨
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 도입
- 자바 애플리케이션을 실행하기 위한 환경
- 자바 가상 머신 (JVM), 자바 클래스 라이브러리 등이 포함되어 있어,
자바 프로그램을 실행할 수 있도록 지원- 개발 도구는 포함되어있지 않음
- 단순히 애플리케이션을 실행하는데 필요한 요소들만 포함됨
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 | JDK |
|---|---|---|
| 용도 | Java 애플리케이션 실행 | Java 애플리케이션 개발 및 실행 |
| 구성 요소 | JVM, Java 클래스 라이브러리 | JRE + 컴파일러, 디버거 등 개발 도구 |
| 대상 사용자 | 최종 사용자 | 개발자 |
| 설치 크기 | 더 작음 | 더 큼 |