Java 버전별 변경점
1996년 1.0 부터 2020년 9월까지
java
- JDK 17
- JDK 16
- JDK 15
- JDK 14
- JDK 13
- JDK 12
- JDK 11
- JDK 10
- JDK 9
- JDK 8
- JDK 7
- JDK 6
- JDK 5
- JDK 1.4
- JDK 1.3
- JDK 1.2 (Java 2 SE)
- JDK 1.1
- JDK 1.0
- 참고문헌
- 주석
JDK 17
- 2021-09-15 JDK 17 발표 및 새로운 변화
- 새로운 LTS인 Java 17이 발표되었다.
- 지난 LTS 버전인 11 이후에 3년만에 발표된 LTS 릴리스이고, LTS 릴리스로써 최소 8년 동안 성능, 안정성 및 보안 업데이트가 예정되어 있는 중요한 릴리스.
- 다음 LTS 버전은 JDK 21 으로 예상하며, 2023년에 발표될 것이다.
- JDK 17부터 기존에 Oracle JDK에 적용이 되었던 Oracle Technology Network (OTN) 라이선스 대신에 Oracle No-Fee Terms and Conditions (NFTC) 라이선스가 적용.
- 여러 사용 용도 및 배포에 있어 제약 조건이 있던 OTN 라이선스와는 달리, 상업 및 프로덕션 용도를 포함하여 모든 사용자들에게 무료로 사용 및 배포를 허용.
JDK 16
2021-04-20 Consolidated JDK 16 Release Notes
JDK 15
2020-09-15 Consolidated JDK 15 Release Notes
JDK 14
2020-03-17 Release Notes for JDK 14 and JDK 14 Update Releases
- LTS 버전이 아니지만 변화 많음
- 스위치/instanceof 개선
- Record 초안 발표
JDK 13
2019-09-17 General Availability
Release Notes for JDK 13 and JDK 13 Update Releases
- JDK 13 What's new
- JDK 13 Documentation
- 멀티 라인 문자열을 위한 텍스트 블록 초안 발표
"""
- 스위치 표현 개선 - 자바 12에 소개된 스위치 표현에 기능 추가
break
대신yield
키워드 사용- 하나의
case
에 여러 개의 구문 사용 가능
JDK 12
2019-03-19 Release Notes for JDK 12 and JDK 12 Update Releases
- 언어적/기능적 변경 크지 않음.
- 스위치 표현 개선을 위한 초안 발표.
- [[java-switch-expression]]{Switch Expressions (Preview)}
그 외
- Shenandoah: A Low-Pause-Time Garbage Collector (Experimental)
- Microbenchmark Suite
- JVM Constants API
- One AArch64 Port, Not Two
- Default CDS Archives
- Abortable Mixed Collections for G1
- Promptly Return Unused Committed Memory from G1
Shenandoah GC
JDK 11
2018-09-25 Consolidated JDK 11 Release Notes
- 발표 주기 변경 후 최초의 LTS 버전
- HTTP 클라이언트 API를 정식으로 추가
- 컬렉션 인터페이스에
toArray
메소드 추가 var
키워드 지원 확대 - 람다 표현식에서도var
사용 가능String
클래스 기능 추가isBlank
,lines
,strip
,stripLeading
,stripTrailing
JDK 10
2018-03-20 JDK 10 Release Notes
- JDK 9 안정화 버전
- 로컬 변수 추론 기능
var
- 가비지 컬렉터 개선
JDK 9
2017-09-21 What's New in Oracle JDK 9
- 라이선스 체계
- 발표 주기 변경(6개월 주기 업그레이드)
- 모듈화(Project Jigsaw)
- JShell(REPL)
- 통합 JVM 로깅
- 자바를 실행할 때
-Xlog
파라미터 옵션을 적용하면 된다.
- 자바를 실행할 때
- HTML5 JavaDoc
javadoc
명령에-html5
옵션을 적용하면 HTML5로 JavaDoc이 빌드된다.
- try-with-resource 개선
- private 메소드도 interface 내에 생성할 수 있게 됨.
- 다이아몬드 연산자
<>
개선 - 익명 클래스에서도<>
를 쓸 수 있게 됐다. - 프로세스 API - 프로세스 정보에 접근할 수 있는 새로운 API.
- 모든 프로세스, 현재 프로세스, 자식 프로세스, 종료 프로세스 등의 정보를 조회하고 관리할 수 있게 됐다.
CompletableFuture
개선 - 타임아웃과 지연 기능 추가- Reactive stream API
JDK 8
2014-03-18 What's New in JDK 8
- 언어적 변경
- Lambda Expressions.
- Functional Interfaces
- 인터페이스 개선
- …
- Collections
java.util.stream
패키지 추가.- stream의 원소들에 함수형 스타일의 작업을 지원.
- stream API는 Collections API에 통합.
- [[java8-performance-improvement-for-hashmap]]{HashMap 퍼포먼스 향상}
- Date-Time Package
Optional
CompletableFuture
-Future
인터페이스에서 제공하는 기능을 개선- IO, NIO
java.lang.String(byte[], *)
생성자 퍼포먼스 향상.java.lang.String.getBytes()
메소드 퍼포먼스 향상.- …
java.lang
,java.util
패키지- Parallel Array Sorting
- …
- HotSpot
- [[java8-why-permgen-removed]]{Removal of PermGen}
- …
JDK 7
Java SE 7 Update Release Notes
- File NIO 2.0
- 파일 처리를 위한 새로운 기능.
java.io.File
클래스와 개념이 다름.
- 포크/조인 프레임워크
- 자바 5에서 처음 등장한 컨터런트 API에 포크/조인 기능이 추가되었다.
- 다이아몬드 연산자
<>
- 제네릭 선언 방법 개선
- try-with-resource
- 하나의 catch 내에 여러 개의 Exception을 처리할 수 있도록 개선
- JVM 기반 스크립트 언어 지원
JDK 6
Highlights of Technology Changes in Java SE 6
- JDK 5 안정화 기능 보강 버전
- G1GC - 6 버전의 중간부터 추가된 기능. 자바 7 부터 기본 GC가 되었다.
JDK 5
New Features and Enhancements J2SE 5.0
- 버전 체계 변경
- 언어 기능
- Generics 추가
- Enhanced for Loop
- Autoboxing/Unboxing
- Typesafe Enums
- Varargs
- Static Import
- Metadata (Annotations)
- Virtual Machine
- 성능 향상
JDK 1.4
- 성능 향상
- 정규식 등 기능 포함
JDK 1.3
- 성능 향상
- Java HotSpot 포함
- JNDI (Java Naming and Directory Interface) 추가
- 그 외 여러가지
JDK 1.2 (Java 2 SE)
- Java™ 2 Brand Unveiled
- 버전 정책 변경: Java 2 SE(Standard Edition) 용어 사용
- 새로운 통합 아키텍처 Collection Framework
- 퍼포먼스 향상
- 로드된 클래스에 대한 메모리 압축
- 더 빠른 메모리 할당 및 개선된 GC
- 곧 출시될 Java HotSpot VM을 포함하여 다른 VM을 위한 플러그형 VM 아키텍처
- 새로운 JIT(Just In Time) 컴파일러
- JNI(Java Native Interface) 변환
- 향상된 JDBC 2.0
- 그 외 여러가지
JDK 1.1
- 컴파일러 개선
- 개선된 AWT(GUI)
- 내부 클래스
- JavaBeans
- DB 연결을 위한 JDBC
- Unicode 2.0 표준을 기반으로 한 글로벌 언어 지원
JDK 1.0
참고문헌
- 웹 문서
- 도서
- Practical 모던 자바 / 장윤기 저 / 인사이트(insight) / 초판 1쇄 2020년 09월 21일