Java SE 1.0 (1996년 출시)
주요 특징:
- Java의 첫 공식 릴리스.
- 객체 지향 프로그래밍 언어로 설계.
- 플랫폼 독립성을 위해 JVM (Java Virtual Machine) 도입.
주요 API:
- java.lang, java.io, java.util, java.net 패키지 포함.
- GUI 프로그래밍 지원을 위해 AWT (Abstract Window Toolkit) 도입.
- Applet 지원: 브라우저에서 실행 가능한 프로그램 작성 가능.
Java SE 1.1 (1997년 출시)
주요 변경 사항:
- 내부 클래스 (Inner Classes): 클래스 내부에 클래스 정의 가능.
- JDBC (Java Database Connectivity): 데이터베이스와 상호 작용 지원.
- RMI (Remote Method Invocation): 분산 시스템 지원.
- JavaBeans: 재사용 가능한 컴포넌트 개발 표준.
- 이벤트 처리 모델(Event Delegation Model) 도입으로 GUI 프로그래밍 개선.
Java SE 1.2 (1998년 출시, “Java 2”)
주요 변경 사항:
- Java Foundation Classes (JFC):
- Swing 추가로 더 강력한 GUI 컴포넌트 제공.
- 컬렉션 프레임워크 (Collections Framework): 데이터 구조를 위한 표준화된 API.
- JIT (Just-In-Time) 컴파일러 도입: 성능 향상.
- 자바 플러그인: 브라우저와 독립적으로 자바 애플릿 실행 가능.
Java SE 1.3 (2000년 출시)
주요 변경 사항:
- JavaSound API: 오디오 프로세싱 및 제어.
- RMI-IIOP: CORBA 기반의 분산 시스템 통합.
- HotSpot JVM: 성능 개선을 위한 고급 JVM 도입.
- JNDI (Java Naming and Directory Interface): 네이밍 및 디렉토리 서비스 통합.
Java SE 1.4 (2002년 출시)
주요 변경 사항:
- XML 처리 지원: SAX, DOM 파서를 통한 XML 지원.
- Logging API: 애플리케이션 로깅을 위한 표준화된 API.
- NIO (New I/O): 고성능 입출력 및 비동기 입출력 지원.
- Java Web Start: 데스크톱 애플리케이션 배포 간소화.
- 정규 표현식 지원: 문자열 처리 강화.
Java SE 5.0 (2004년 출시, “Tiger”)
주요 변경 사항:
- 제네릭 (Generics): 타입 안정성과 컴파일 타임 타입 검사 강화.
- 애너테이션 (Annotations): 메타데이터를 통한 코드 관리 개선.
- for-each 루프: 배열 및 컬렉션 순회 간소화.
- 자동 박싱/언박싱: 기본 타입과 객체 타입 간 변환 자동화.
- enum: 열거형 데이터 타입 지원.
- Concurrent 패키지: 멀티스레드 프로그래밍 지원 강화.
Java SE 6 (2006년 출시, “Mustang”)
주요 변경 사항:
- JDBC 4.0: 데이터베이스 연결 관리 개선.
- 스크립팅 언어 지원: JavaScript와 같은 스크립팅 언어 통합 (javax.script).
- 웹 서비스 지원 강화: SOAP 기반 웹 서비스 API 도입.
- Compiler API: 런타임에서의 동적 컴파일 지원.
- 데스크톱 통합 강화:
- Swing에 대한 성능 및 기능 개선.
- 시스템 트레이, 바탕화면 API 도입.
Java SE 7 (2011년 출시, “Dolphin”)
주요 변경 사항:
- 다이아몬드 연산자 (<>): 제네릭 타입의 선언을 간소화.
- 멀티 캐치 블록: 여러 예외를 하나의 catch 블록에서 처리 가능.
- try-with-resources: 자동으로 리소스 해제.
- NIO.2: 파일 시스템과의 상호작용 강화 (java.nio.file).
- Fork/Join Framework: 멀티코어 CPU를 활용한 병렬 작업 지원.
- String in Switch: Switch 문에서 문자열 사용 가능.
Java SE 8 (2014년 출시)
가장 널리 사용되는 버전 중 하나로, 현대 Java 프로그래밍의 기초를 이룬다.
- 람다 표현식 (Lambda Expressions): 함수형 프로그래밍 지원, 코드 간결화.
- Stream API: 컬렉션 처리 간소화 및 병렬 처리 지원.
- 새로운 날짜 및 시간 API: java.time 패키지를 통한 강력한 날짜/시간 처리.
- Optional 클래스: NullPointerException 방지를 위한 Optional 도입.
- 인터페이스의 디폴트 메서드: 인터페이스에서 기본 구현 제공 가능.
- PermGen 영역 제거: PermGen 대신 메타스페이스(Metaspace) 도입으로 메모리 관리 개선.
Java SE 9 (2017년 출시)
- 모듈 시스템 (Project Jigsaw): 애플리케이션의 모듈화 가능, java.base 모듈 도입.
- JShell (REPL): 인터랙티브 Java 실행 환경.
- Stream API 개선: takeWhile(), dropWhile() 메서드 추가.
- Immutable 컬렉션 팩토리 메서드: List.of(), Set.of() 등을 사용하여 불변 컬렉션 생성.
- Compact Strings: 메모리 절약을 위해 문자열 저장 방식 개선.
Java SE 10 (2018년 출시)
- var 키워드 도입: 지역 변수에 대해 타입 추론 지원 (var name = "example";).
- Garbage Collection 개선: G1 GC의 성능 최적화.
- Application Class-Data Sharing (AppCDS): 클래스 로딩 성능 향상.
Java SE 11 (2018년 출시, LTS 버전)
- LTS (Long-Term Support) 버전으로 기업에서 많이 사용.
- 새로운 String 메서드: isBlank(), lines(), strip(), repeat().
- HTTP Client API: 비동기 HTTP 요청/응답 처리 (java.net.http).
- var를 Lambda 매개변수에서 사용 가능.
- JavaFX 분리: JavaFX가 JDK에서 제거되고 독립 프로젝트로 이동.
Java SE 12 (2019년 출시)
- Switch 표현식 (프리뷰): 간결한 switch 문법 (switch -> case).
- G1 GC 개선: 자동 힙 공간 크기 조정.
- Collectors API 추가: teeing() 메서드 도입으로 두 개의 Collector를 결합 가능.
Java SE 13 (2019년 출시)
- 텍스트 블록 (프리뷰): 여러 줄의 문자열 표현 간소화 (""" 사용).
- Switch 표현식 정식 도입.
Java SE 14 (2020년 출시)
- Record 클래스 (프리뷰): 데이터 클래스 도입으로 보일러플레이트 코드 제거.
- NullPointerException 메시지 개선: 디버깅이 더 쉬워짐.
- JFR 이벤트 스트리밍: 성능 모니터링 도구 강화.
Java SE 15 (2020년 출시)
- 텍스트 블록 정식 도입.
- Sealed 클래스 (프리뷰): 클래스 계층 구조 제한 가능.
- ZGC 개선: 매우 짧은 GC 중단 시간 제공.
Java SE 16 (2021년 출시)
- Record 클래스 정식 도입.
- Pattern Matching for instanceof: 타입 캐스팅 코드 간소화.
- Foreign Function & Memory API (프리뷰): C와 같은 네이티브 코드를 더 쉽게 호출.
Java SE 17 (2021년 출시, LTS 버전)
- LTS 버전으로 안정성과 장기 지원 제공.
- Sealed 클래스 정식 도입.
- 패턴 매칭 정식 도입 (instanceof 개선).
- 새로운 Garbage Collector (ZGC, G1 GC 개선).
- JEP 도입: 다양한 새로운 Java Enhancement Proposals 포함.
Java SE 18 (2022년 출시)
- Simple Web Server: 테스트와 프로토타입 개발을 위한 경량 웹 서버 추가.
- UTF-8 기본 문자 인코딩.
- Vector API (2nd Incubator): 고성능 벡터 연산 지원.
Java SE 19 (2022년 출시)
- Virtual Threads (프리뷰): 효율적인 경량 스레드.
- Structured Concurrency (프리뷰): 병렬 작업을 더 쉽게 관리.
- Foreign Function & Memory API 확장.
Java SE 20 (2023년 출시)
- Virtual Threads 정식 도입: 고성능 동시성 프로그래밍 지원.
- Pattern Matching 개선: Switch 구문에서 정교한 매칭 가능.