Java10

업데이트:

주요 변경사항

JAVA 10

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

Local-variable type inference

명시적으로 언급하던 타입을 추론을 통해 가능하게 개선되었다.

public class TypeInference {
  public static void main(String[] args) {
    // Java6
    Map<Integer, String> map = new HashMap<Integer, String>();
    // Java7
    Map<Integer, String> map = new HashMap<>();
    // Java10
    var map = new HashMap<Integer, String>();
  }
}

Optional.orElseThrow() Method

Optional 클래스에 get 메서드를 활용하는 orElseThrow 메서드가 추가되었다.

APIs for Creating Unmodifiable Collections

Collectors 클래스에 추가 메서드(toUnmodifiableList, toUnmodifiableSet, toUnmodifiableMap)를 활용하여 수정할 수 없는 컬랙션에서 데이터를 수집할 수 있다.

Parallel Full GC for G1

G1은 단일 스레드로 Mark-Sweep-Compact알고리즘을 사용하였지만, 전체 GC를 병렬로 만들어 G1 최악의 지연 시간을 개선하였다.

Root Certificates

JDK에서 기본 Certification Authority(CA)인증서를 제공합니다.

Time-Based Release Versioning

OpenJDK 커뮤니티는 Java 플랫폼의 주요 릴리스가 6개월마다 발생 하는 새로운 시간 기반 릴리스 모델2을 채택했습니다. JEP2233에서 도입 한 버전 번호 체계를 다시 캐스팅하여 새로운 기능을 포함 할 수있는 기능 릴리스를 정의하는 시간 기반 릴리스 모델과 버그만 수정하는 업데이트 릴리스에 더 적합하도록합니다.4

$FEATURE.$INTERIM.$UPDATE.$PATCH

  • $FEATURE : 릴리스 내용에 관계없이 모든 기능 릴리스에 대해 증가하는 기능 릴리스 카운터dlek.
  • $INTERIM : 호환되는 버그 수정 및 개선 사항을 포함하지만 호환되지 않는 변경 사항, 기능 제거 사항 및 표준 API 변경 사항이없는 비 기능 릴리스에 대해 증가하는 임시 릴리스 카운터이다.
  • $UPDATE : 보안 문제, 회귀 및 최신 기능의 버그를 수정하는 호환 가능한 업데이트 릴리스에 대해 증가하는 카운터이다.
  • $PATCH : 중요한 문제를 해결하기 위해 카운터이다.

Reference

※ Sample Code는 여기에서 확인 가능합니다.

댓글남기기