JDK 1.0a 1994
JDK 1.0a2 1995
자바언어가 공시적으로 발표됨
JDK 1.0 1996
이전에 Oak로 불렸으나, 안정화 작업을 거친 1.0.2부터 JAVA로 이름변경
JDK 1.1 1997
- inner class
- JavaBeans
- RMI
- reflection
- unicode
- 국제화(internationallization)
JDK 1.2 1998
- strictfp
- SWING GUI
- JIT CORBA
- Collections
: JDK이름을 J2SE로 변경(J2SE 5까지 사용)
JDK 1.3 2000
- HotSpot JVM
- JNDI
- JPDA
- JavaSound
JDK 1.4 2002
- regular expression
- NIO
- IPv6
- XML API
- JCE
- JSSE
- JAAS
- Java Web Start
J2SE 5 2004
- generics
- annotation
- auto boxing/unboxing
- enumeration
- 가변길이 파라미터
- static import
- concurrency API
Java SE 6 2006
- interface에 @Override 추가됨
- JDBC 4.0
- Scripting Language Support
- Java Compiler API
- pluggable annotation
: J2SE -> Java SE로 변경
Java SE 7 2011
- diamond operator <>
- try-resource
- multi-catch
- switch문에 String 사용
- concurrency API(new)
- File NIO(new)
- Java2D 지원
- dynamic language 지원
Java SE 8 2014
- lambda expression
- type annotation
- stream api 추가
- repeating annotation
- static link library
- interface default method
- unsigned integer 계산
- 날짜와 시간 API(new) -> JodaTime
- rhino 대신 nashorn javascript 엔진 탑재
: 32비트 지원 마지막 공식버전
Java SE 9 2017
- Jingsaw 기반 런타임 모듈화(module)
- JShell 추가(인터프리터 셀처럼 사용)
- private interface method
- immutable collection
- 통합 로깅
- HTTP/2
- HTML 5 JavaDoc
- 프로퍼티 파일에 UTF-8 지원
:
- 버전을 1.x로 하지 않고 9.0으로 변경
- Ahead-of-time compiler 시범 적용
- Java Applet 기능 종료
- 64비트 버전만 출시
Java SE 10 2018
- var 키워드를 이용한 지역변수 타입추론
- 병렬처리 가비지 컬렉터
- 개별 Thread로 분리된 Stop-The World
- 루트 CA
- JVM heap영역을 시스템 메모리가 아니 다른종류의 메모리에도 할당
:
- JDK 레토지토리가 하나로 통합
- Java기반 JIT 컴파일러
- 이전 버전 deprecated처리된 API 삭제
Java SE 11 2018
- lambda 파라미터에 대한 지역변수 문법
- 엡실론 가비지 컬렉터
- HTTP 클라이언트 표준화
:
- OracleJDK의 독점기능이 OpenJDK에 이식 (OracleJDK와 OpenJDK가 동일해짐)
- 2019년 1월부터 OracleJDK가 유료 모델로 전환
- eclipse 재단으로 넘어간 Java EE 삭제
- JavaFX도 JDK에서 분리하여 별도 모듈 제공
Java SE 12 2019.03
- switch문 확장 ( -> )
- 가비지 컬렉터 개선
- 마이크로 벤치마크 툴 추가
- 성능개선
Java SE 13 2019.09