JDK 버전별 차이

김영빈·2021년 3월 28일
2

이 문서의 출처

https://www.skyer9.pe.kr/wordpress/?p=287
https://namu.wiki/w/Java#s-4.16

잘 정리되어 있는 것 같아서 참고용으로 올립니다.

JDK 버전 출시년도와 차이점 정리

Java 8 - 2014년

  • 오라클 인수 후 첫번째 버전

  • 2개 버전으로 나뉨(Oracle JDK, OpenJDK)

  • Lambda, new Date and Time API(LocalDateTime, …)

  • interface default method

  • Optional

  • PermGen Area 제거

Java 9 - 2017년

  • 모듈시스템 등장(jigsaw)

Java 10 - 2018년 3월

  • var 키워드

  • 병렬 처리 가비지 컬렉션 도입으로 인한 성능 향상

  • JVM 힙 영역을 시스템 메모리가 아닌 다른 종류의 메모리에도 할당 가능

Java 11 - 2018년 9월

  • Oracle JDK와 OpenJDK 통합

  • Oracle JDK가 구독형 유료 모델로 전환

  • 서드파티 JDK 로의 이전 필요

  • lambda 지역변수 사용법 변경

(var x, var y) -> x.process(y) => (x, y) -> x.process(y)

Java 12 - 2019.03

  • switch문 확장

Java 13 - 2019.09

  • switch문 개선을 위한 yield 예약어 추가

Java 14 - 2020.03

  • instanceof 패턴 매칭 (preview)
  • record (data object) 선언 기능 추가 (preview)

Java 15 - 2020.09

  • EdDSA 암호화 알고리즘 추가
  • 패턴 매칭 (2차 preview, 상단 Java 14 참조)
  • 스케일링 가능한 낮은 지연의 가비지 컬렉터 추가(ZGC)
  • Solaris 및 SPARC 플랫폼 지원 제거
  • 외부 메모리 접근 API (인큐베이팅)
  • 레코드 (2차 preview, 상단 Java 14 참조)
  • 클래스 봉인 (preview)

    상속 가능한 클래스를 지정할 수 있는 봉인 클래스가 제공된다.
    상속 가능한 대상은 상위 클래스 또는 인터페이스 패키지 내에 속해 있어야 한다.

package wiki.namu.example.species;

public sealed class Animal
       Dog,
	   wiki.namu.example.species.india.Monkey,
	   wiki.namu.example.species.sabana.Leopard
{
    // ...
}
  • 다중 텍스트 블록
String html = """
              <html>
                  <body>
                      <p>Hello, world</p>
                  </body>
              </html>
              """;
profile
초보 개발자

0개의 댓글