IT 이모저모

Java 10 오늘 부로 정식 발표. 로컬 변수의 타입 추론 가비지 컬렉터가 교체 가능한 비 휘발성 메모리 지원 등.

exien 2018. 3. 20. 08:52

작년 9 월에 등장한 Java 9에서 Java는 6 개월마다의 타임베이스 업데이트주기가 채용되었습니다. 그리고 그 첫 번째 1 사이클이 경과 한 오늘 3 월 20 일자로 Java 9의 다음 메이저 버전 업되는 Java 10이 등장 할 예정입니다.

아마 Java 10의 공식적인 발표는 미국 시간 3 월 20 일 한국 시간으로 휴일이 내일 아침 당이 될 것으로 생각됩니다.

Java 10의 새로운 기능 : 로컬 변수의 타입 추론 가비지 컬렉터가 교체 가능 등

Java 9에서는 통칭 "Project Jigsaw"라는 Java의 모듈화 기능이 들어가 Java에 대한 큰 변경되었습니다. 그러나 이번 Java 10에서는 그다지 큰 기능 변경 사항 및 새로운 기능의 추가는 없습니다.

Java 10에서 주목할만한 새로운 기능들을 살펴 보자.

Java 10에서 로컬 변수를 선언 할 때 타입 추론을 이용하여 명시 적으로 타입을 선언하지 않는 기술이 가능하게되었습니다. Java의 정적 타입 언어의 특징을 유지하면서도, 의식적인 묘사를 줄여 사용하기 쉬운 언어로하는 것이 목적인 것 같습니다. 예를 들어, 다음과 같이 작성할 수 있습니다.

var list = new ArrayList<String>();  // ArrayList<String>と推論

또한 가비지 컬렉터 인터페이스가 도입되고, JavaVM의 가비지 컬렉터가 교체 할 수 있습니다. 앞으로 용도에 따라 다양한 가비지 컬렉터가 등장 할 것입니다.

NV-DIMM (비 휘발성 DIMM) 등 새로운 유형의 메모리에 힙 공간이 배치 가능하게되었습니다. 스토리지 클래스 메모리 등 앞으로 메인 메모리와 스토리지의 중간적인 저장 공간 등이 등장하는데 갖추고있는 것 같습니다.

다른 Java 10의 주요 기능은 Qiita 기사 " Java 10 새로운 기능 정리 - Qiita "가 도움이됩니다.

Java 10의 등장과 동시에 Java 9 지원 종료

Java 10의 등장은 동시에 Java 9의 지원 기간을 의미합니다. 앞으로는 Java 9에 대한 유지 관리 릴리스 등을하지 않게됩니다. 따라서 Java 9 사용자는 신속한 Java 10으로 업그레이드해야합니다. Java 9는 작년 9 월에 등장하고 나서 6 개월에서 그 역할을 끝낼 것입니다.

Java 9의 지원이 Java 10의 등장과 동시에 종료는 Java 9가 장기 지원되는 버전 (Long Term Support : LTS) 버전은 없기 때문입니다.

현재 LTS는 2014 년 3 월에 발표 된 Java 8입니다. Java 8은 상업적으로는 2019 년 1 월까지 개인 이용은 2020 년 12 월까지 무료로 유지 보수 릴리스를 구입할 수 있으며, 그 이후도 오라클과 유상 지원 계약을 체결하여 지원을받을 수 있습니다.

그리고이 지원 기간이 올로 Java 8의 다음 LTS 인 「Java 11 "로 전환하는 것이 좋습니다됩니다. Java 11은 지금부터 6 개월 후 2018 년 9 월에 등장 할 예정입니다. Java 8의 무상 유지 보수 릴리즈가 최대 2020 년 12 월까지 사용할 수있는 것은,이 Java 11의 이행 기간을 충분히 마련하기 위해 설명되어 있습니다.

다음은 오라클이 무료 버전의 JDK 및 유료 버전 JDK의 지원 정책에 대한 설명에 사용되는 그림을 허가 전재 한 것입니다.

Java의 새로운 지원 정책

LTS 이외의 Java 버전은 다음 메이저 버전 업의 등장과 동시에 지원이 종료됩니다.

위 그림에서도 JDK 9 지원 기간이 JDK 10의 등장과 동시에 종료되며 JDK 10 지원 기간이 JDK 11의 등장과 동시에 종료하고 있는지 알 수 있다고 생각합니다.

그리고 Java 10도 LTS가 없습니다. 즉 이번 등장하는 Java 10도 6 개월 후에 Java 11이 등장 할 때 그 역할을 끝낼 것입니다.

향후 Java를 개발 언어로 사용하는 경우에는 6 개월마다 등장하는 최신 버전을 적극적으로 잡을 가는지, 아니면 3 년마다 등장하는 LTS 버전에 초점을 중간 버전은 건너 뛰기 또는 개발 기간과 컷 오버 타이밍도 노려하면서 프로젝트마다 정책을 생각할 필요가있을 것입니다.

다음 Java 11에서 OpenJDK는 무료 버전 Java에

Java 10도 무상으로 사용할 수있는 Oracle JDK의 마지막 주 버전이기도합니다. Java 11에서 Oracle JDK는 오라클과 유료 지원 계약을 맺은 사용자에게만 제공되지 않습니다.

그래서 지금까지 무료로 제공되어왔다 Oracle JDK를 대체하는 것이 "OpenJDK"입니다.

Java 11의 등장시에는 Oracle JDK와 동일한 기능과 품질을 갖춘 오픈 소스 구현 인 OpenJDK는 출시 된 바이너리가 무료로 제공 될 예정입니다.

그리고 OpenJDK에서도 Java 11에서 3 년마다 LTS가 설정되어 LTS에 대해 장기적으로 유지 보수를하는 계획이있는 취지 설명되어 있습니다.

아마이 계획에 대해서는, Java 11의 출시 전후에 Java 커뮤니티에서 정식 발표가있는 것은 아닐까요.