Java 버전별 특징들을 정리한 내용입니다.

JAVA 버전 발표일 특징 비고
Java SE 13 2019년 9월 17일 - switch문에 yield 예약어 추가  
Java SE 12 2019년 3월 19일 - switch문 확장 ( -> )
- 가비지 컬렉터 개선
- 마이크로 벤치마크 툴 추가
- 성능개선
 
Java SE 11 2018년 9월 25일 - lambda 파라미터에 대한 지역변수 문법
- 엡실론 가비지 컬렉터
- HTTP 클라이언트 표준화
- OracleJDK의 독점기능이 OpenJDK에 이식 (OracleJDK와 OpenJDK가 동일해짐)
- 2019년 1월부터 OracleJDK가 유료 모델로 전환

-
eclipse 재단으로 넘어간 Java EE 삭제
- JavaFX도 JDK에서 분리하여 별도 모듈 제공

Java SE 10 2018년 3월 20일 - var 키워드를 이용한 지역변수 타입추론
- 병렬처리 가비지 컬렉터
- 개별 Thread로 분리된 Stop-The World
- 루트 CA
- JVM heap영역을 시스템 메모리가 아니 다른종류의 메모리에도 할당
- JDK 레토지토리가 하나로 통합
- Java기반 JIT 컴파일러
- 이전 버전 deprecated처리된 API 삭제
Java SE 9 2017년 9월 21일

- 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 8 2014년 3월 18일 - 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 7 2011년 7월 7일 - diamond operator <>
- try-resource
- multi-catch
- switch문에 String 사용
- concurrency API(new)
- File NIO(new)
- Java2D 지원
- dynamic language 지원
 
Java SE 6 2006년 12월 11일 - interface에 @Override 추가됨
- JDBC 4.0
- Scripting Language Support
- Java Compiler API
- pluggable annotation
- J2SE -> Java SE로 변경
J2SE 5 2004년 9월 30일 - generics
- annotation
- auto boxing/unboxing
- enumeration
- 가변길이 파라미터
- static import
- concurrency API
- 버전중 1을 빼고 표기
(내부적으로는 1.5, 1.6, 1.7 등을 사용)
J2SE 1.4 2002년 2월 6일 - assert
- regular expression
- NIO
- IPv6
- XML API
- JCE
- JSSE
- JAAS
- Java Web Start
 
J2SE 1.3 2000년 3월 8일 - HotSpot JVM
- JNDI
- JPDA
- JavaSound
- RMI가 CORBA 지원
J2SE 1.2 1998년 12월 8일 - strictfp
- SWING GUI
- JIT CORBA
- Collections
- JDK -> J2SE로 변경 (J2SE 5까지 사용)
- 1999년 업데이트를 통한HotSpot JVM
JDK 1.1 1997년 2월 19일 - inner class
- JavaBeans
- RMI
- reflection
- unicode
- 국제화(internationallization)
 
JDK 1.0 1996년 1월 23일   - 이전에 Oak로 불렸으나, 안정화 작업을 거친 1.0.2부터 JAVA로 변경
JDK 1.0a2 1995년 5월 23일   - 자바 언어가 정식으로 발표된 날
JDK 1.0a 1994년    

 

참조: 나무위키(https://namu.wiki/w/Java)