반응형
Java의 각 버전은 새로운 기능, 개선 사항 및 버그 수정이 포함되어 있습니다. 아래는 주요 Java 버전과 그 특징에 대한 개요입니다.
Java SE 1.0 (1996)
- 기본 기능: 최초의 정식 버전으로, 기본적인 객체 지향 프로그래밍 기능과 AWT(Abstract Window Toolkit) 등 GUI 구성 요소 포함.
Java SE 1.1 (1997)
- Inner Classes: 내부 클래스 도입.
- JavaBeans: JavaBeans 컴포넌트 모델 추가.
- RMI: 원격 메소드 호출(Remote Method Invocation) 지원.
- JDBC: Java Database Connectivity API 도입.
Java SE 1.2 (1998) - 코드명 "Playground"
- Swing: 새로운 GUI 툴킷인 Swing 도입.
- Collections Framework: 새로운 컬렉션 프레임워크 추가.
- JIT Compiler: Just-In-Time 컴파일러 도입으로 성능 향상.
Java SE 1.3 (2000) - 코드명 "Kestrel"
- HotSpot JVM: HotSpot 가상 머신 도입.
- RMI 개선: RMI 성능 개선.
- JavaSound: 새로운 사운드 API 추가.
Java SE 1.4 (2002) - 코드명 "Merlin"
- assert: assert 키워드 추가.
- NIO: 새로운 입출력(NIO) API 도입.
- Logging API: 로깅 API 추가.
- XML: XML 파서와 XSLT 프로세서 기본 제공.
Java SE 5.0 (2004) - 코드명 "Tiger"
- Generics: 제네릭스 도입.
- Annotations: 주석(Annotation) 지원.
- Enum: 열거형(Enums) 추가.
- Autoboxing: 자동 박싱 및 언박싱 지원.
- Concurrency Utilities: 동시성 유틸리티 추가.
Java SE 6 (2006) - 코드명 "Mustang"
- Scripting Language Support: 스크립팅 언어 지원 (Java Compiler API).
- Improved Web Services: 웹 서비스 개선.
- JDBC 4.0: JDBC 4.0 지원.
- Compiler API: 동적 컴파일러 API 도입.
Java SE 7 (2011) - 코드명 "Dolphin"
- Project Coin: 작은 언어 개선 (try-with-resources, multi-catch, 등).
- Fork/Join Framework: 병렬 프로그래밍 지원.
- NIO.2: 향상된 파일 시스템 API.
- Dynamically Typed Language Support: invokedynamic 바이트코드 도입.
Java SE 8 (2014) - 코드명 "Spider"
- Lambda Expressions: 람다 표현식 도입.
- Stream API: 스트림 API 추가.
- Optional Class: Optional 클래스 도입.
- Date and Time API: 새로운 날짜와 시간 API (java.time 패키지).
- Nashorn JavaScript Engine: Nashorn JavaScript 엔진 도입.
Java SE 9 (2017) - 코드명 "Jigsaw"
- Module System: 모듈 시스템 도입 (Project Jigsaw).
- JShell: REPL(Read-Eval-Print Loop) 도구.
- Multi-Release JARs: 다중 릴리스 JAR 파일 지원.
- Collection Factory Methods: 컬렉션 팩토리 메소드 추가.
Java SE 10 (2018)
- Local-Variable Type Inference: var 키워드를 통한 지역 변수 타입 추론.
- Garbage Collection Improvements: 다양한 GC 개선 사항.
- Application Class-Data Sharing: 애플리케이션 클래스-데이터 공유.
Java SE 11 (2018) - LTS (Long Term Support)
- New String Methods: 새로운 문자열 메소드 (lines, strip, 등).
- HTTP Client API: 새로운 HTTP 클라이언트 API (HTTP/2 지원).
- Local-Variable Syntax for Lambda Parameters: 람다 파라미터에 var 사용 가능.
Java SE 12 (2019)
- Switch Expressions: 미리보기 기능으로 switch 표현식 도입.
- Default CDS Archives: 기본 클래스-데이터 공유 아카이브.
Java SE 13 (2019)
- Text Blocks: 미리보기 기능으로 텍스트 블록 도입.
- Switch Expressions (Extended): 확장된 switch 표현식 미리보기.
Java SE 14 (2020)
- Pattern Matching for instanceof: instanceof 연산자에 대한 패턴 매칭 도입.
- Records (Preview): 데이터 클래스 형태인 레코드 도입 미리보기.
Java SE 15 (2020)
- Text Blocks: 텍스트 블록 정식 도입.
- Sealed Classes (Preview): 봉인된 클래스 미리보기.
- Records: 레코드 정식 도입.
Java SE 16 (2021)
- Pattern Matching for instanceof: 패턴 매칭 정식 도입.
- Records: 레코드 정식 도입.
- Vector API (Incubator): 벡터 API 인큐베이터.
Java SE 17 (2021) - LTS
- Sealed Classes: 봉인된 클래스 정식 도입.
- Foreign Function & Memory API (Incubator): 외부 함수 및 메모리 API 인큐베이터.
- New macOS Rendering Pipeline: 새로운 macOS 렌더링 파이프라인.
Java SE 18 (2022)
- Simple Web Server: 간단한 웹 서버 도입.
- UTF-8 by Default: 기본 인코딩을 UTF-8로 설정.
Java SE 19 (2022)
- Virtual Threads (Preview): 가상 스레드 미리보기.
- Pattern Matching for switch (Preview): switch를 위한 패턴 매칭 미리보기.
Java SE 20 (2023)
- Scoped Values (Incubator): 범위 값 인큐베이터.
- Record Patterns: 레코드 패턴.
Java의 각 버전은 성능 향상, 새로운 기능 추가 및 개발자 경험 개선에 초점을 맞추고 있습니다. 최신 LTS 버전인 Java SE 17과 같은 경우, 장기적인 지원을 제공하여 안정적인 환경을 필요로 하는 프로젝트에 적합합니다. 최신 버전을 사용하면 새로운 기능과 개선 사항을 활용할 수 있지만, 프로젝트의 요구 사항에 맞는 버전을 선택하는 것이 중요합니다.
반응형
'IT개발 > Java' 카테고리의 다른 글
[Java] 디자인패턴 10종 정리 (1) | 2022.03.26 |
---|---|
J2EE란? (0) | 2019.12.04 |
[JAVA] flush() (2) | 2014.10.13 |
[Java] String, StringBuffer, StringBuilder 란?? 그리고 속도 비교 (0) | 2014.07.02 |
[Java] java compile 시 utf-8 문제 (癤?) : Unexpected character (癤) at position 0. (0) | 2014.04.24 |