ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JDK17
    공부/자바 2023. 7. 27. 00:08
    728x90

    JDK 17

    JDK17은 23년 9월 JDK 21을 발표하기 전까지 현재 존재하는 LTS 버전 중 제일 최신 버전이다.

     

    최소 8년 즉 29년 8월까지 성능, 안정성 및 보안 업데이트가 예정되어 있다.

    지난 LTS 버전인 11이후로 발표된 JDK 12 ~ 16에 포함된 60개의 JEP 기능들을 포함하고, 추가로 JDK 17만의 새로운 14개의 기능들을 탑재하고 있다.

     

    스프링 부트 3.0으로 넘어가면서 17이전의 JDK 17 이전 버전들로 실행이 불가능하다.

     

     

    JDK 17  변경사항

     

    자바 언어 개선 사항

    sealed class and interface: 다른 클래스나 인터페이스에 대한 확장 및 구현을 제한한다.

     

    라이브러리 업데이트 및 개선 사항

    항상 엄격한 부동 소수점 문법 복원: 1.2에서 예외사항을 채택하였으나 해당 예외가 더이상 유용하거나 필요하지 않아 제거하였다.

    향상된 의사 난수 생성기: 요구사항에 부합하는 알고리즘 구현을 위해 직접 코드를 작성하지 않고도 손쉽게 구현할 수 있도록 지원한다.

    신규 맥OS 렌더링 파이프 라인: 자바 2D 파이프라인을 구현하고, 지원이 중단된 애플 OpenGL API에 대한 JDK 의존성을 줄인다.

     

    새로운 플랫폼 지원

    맥 OS AArch64 포팅: 새로운 Arm 64 기반의 맥OS에서 자바 애플리케이션을 자체적으로 실행하는 것이 가능해졌다.

     

    삭제 및 지원 중단

    삭제 예정된 애플릿 API 지원 중단

    원격 RMI 활성화 삭제

    AOT 및 JIT 컴파일러 삭제

    삭제 예정된 보안 메니저 지원 중단

     

     

    미래를 대비한 자바 프로그램

    JDK 내부의 강력한 캡슐화: JDK 9~16까지 단일 커맨드 라인 입력을 통해 가능했던 내부 구성 요소의 강력한 캡슐화 해제가 차단된다. 커맨드 라인 매개변수나 JAR manifest 파일의 속성을 이용하여 강력한 캡슐화를 해제하고자 하는 패키지 목록을 지정해야 한다.

     

     

    다음 JDK 버전 기능의 미리보기 및 인큐베이팅

    switch를 위한 패턴 매칭: 개별 작업이 할당된 다양한 패턴을 테스트하는 switch 구문을 허용한다.

    외부 함수와 메모리 API: 외부함수를 효율적으로 호출하고, 외부 메모리에 안전하게 접근하도록 한다.

    Vector API: 런타임에서 안정적으로 컴파일 가능한 백터 연산 문법을 지원한다.

     

     

    JDK 16

    JDK 16 최종 확정된 언어 향상

    instanceof 패턴 매칭: Java 로그래밍 언어 향상한다.

    Records: 불변 데이터에 대한 전달자 역할을 한다.

     

    개발자 생산성 향상시키는 새로운 도구

    패키징 툴: java 응용 프로그램을 패키징 하기 위한 도구

     

    성능 향상을 위한 향상된 메모리 관리

    유연한 메타스페이스 관리: 사용되지 않는 핫스팟 클래스 메타데이터 메모리를 운영 체제에 신속하게 반환하여, 메타 스페이스 사용량을 줄이고,  메타스페이스 코드를 단순화하여 유지 관리 비용을 절감한다.

    동시 스레드 스택 처리: 스레드 스택 처리를 safepoint 단계에서 concurrent 단계로 이동한다.

     

    개발자의 생산성과 유연성을 향상시키기 위한 향상된 네트워킹

    유닉스-도메인 소켓 채널: 유닉스 도메인 소켓의 모든 기능에 대한 지원을 추가한다.

     

    향후 호환되지 않는 코드 해결

    값 기반 클래스에 대한 경고: 값 기반 클래스 인스턴스를 동기화하려는 부적절한 시도에 대해 경고를 제공한다.

     

    오픈 JDK 기여자를 위한 개선

    JDK 소스코드에서 C++ 언어 기능 사용

    Merucurial에서 Git로 마이그레이션

    GitHub로 마이그레이션

     

     

     

     

     

     

    JDK8~15

     

     

     

     

     

    https://www.oracle.com/kr/news/announcement/oracle-releases-java-17-2021-09-14/

    https://blogs.oracle.com/javakr/post/jdk-17

    https://openjdk.org/jeps/0

    728x90
    반응형

    댓글

Designed by Tistory.