Java11

업데이트:

주요 변경사항

JAVA 11

  • 자세한 내용은 오라클 공식 변경사항1을 참조하기 바란다.

Unicode 10

유니 코드 표준버전 10.0을 지원하도록 기존 플랫폼 API를 업그레이드 하였다.

HTTP Client (Standard)

JAVA9에 도입되고 JAVA10에서 업데이트 된 jdk.incubator.http패키지는 제거되었고 java.net.http이 생성되었다.

  • CompletableFutures을 통해 Non-Blocking Request, Response를 지원한다.
  • java.util.concurrent.Flow API를 이용한 BackPressure와 FlowControl을 지원한다.
  • 이전 HTTP/1.1 구현은 차단되었고, RXFlow 개념의 사용이 구현에 적용되어 HTTP/2을 지원한다.
  • Factory method로 BodyPublisher, BodyHandler, BodySubscriber를 생성한다.

Updated Locale Data to Unicode CLDR v33

Unicode Consortium의 CLDR(Common Locale Data Registry)을 기반으로하는 Locale Data가 Java11용으로 업데이트되었다.

ZGC A Scalable Low-Latency Garbage Collector (Experimental)

확장 가능한 낮은 지연 가비지 수집기인 Z Garbage Collector가 실험적 기능으로 추가되었다.

  • 일시 중지 시간은 10ms를 초과하지 않는다.
  • 일시 중지 시간은 힙 또는 라이브 세트 크기에 따라 증가하지 않는다.
  • 수백 메가 바이트에서 수 테라 바이트 크기의 힙을 처리한다.
  • Linux/x64에서만 JVM 옵션(-XX:+UnlockExperimentalVMOptions, -XX:+UseZGC)을 추가하여 사용할 수 있다.
  • 압축 된 oops, 압축 된 클래스 포인트 사용, 클래스 언로드는 지원하지 않으며, JVM 옵션을 추가하여도 효과가 없다.

Nest-Based Access Control

Java 프로그래밍 언어의 기존 중첩 유형 개념과 일치하는 액세스 제어 컨텍스트인 nest가 추가되었다.2

Transport Layer Security (TLS) 1.3

TLS(Transport Layer Security) 1.3 사양(RFC 8446)의 구현이 포함되어 있다.

  • TLS 프로토콜 버전 이름 : TLSv1.3
  • SSLContext 알고리즘 이름 : TLSv1.3
  • TLS1.3 용 TLS 암호 그룹 이름 : TLS_AES_128_GCM_SHA256, TLS_AES_256_GCM_SHA384
  • X509KeyManager의 keyType : RSASSA-PSS
  • X509TrustManager의 authType : RSASSA-PSS

Local-Variable Syntax for Lambda Parameters

변수 선언에 사용되는 var은 람다 식의 형식 매개 변수를 선언 할 때 사용할 수 있다.

Deprecate the Nashorn JavaScript Engine

API와 함께 ECMAScript 언어 구조가 조정되고 수정되는 빠른 속도로 인해 유지 관리가 어려워 Nashorn JavaScript 스크립트 엔진과 API 및 jjs 도구를 제거하였다.

Migrating From JDK 8 to Later JDK Releases

JDK 8 이후 JDK 릴리스 간에 많은 변경이 있었다. JDK 내부 API를 사용하는 코드는 계속 실행해야하지만 지원되는 API를 사용하려면 마이그레이션을 해야한다.

Reference

댓글남기기