본문 바로가기

각 버전의 기술적 특징이 궁금하다면 아래 사이트로 접속해 상세 설명 페이지를 들어가면 굉장히 자세한 설명 페이지가 나온다. 영문이라 보기 어렵다면 요즘 유행하는 deepL을 활요해 보면 도움이 많이 될 것이다. 도구는 도구일뿐 어떤 기능이 있는지는 알아야 하겠다. 사용법은 그때 그때 필요해 의해 익혀 두거나 꾸준한 공부를 위한 학습으로만 사용하시길

https://openjdk.org/projects/jdk/ 

https://openjdk.org/projects/jdk/

 

 

자바(Java)는 지속적으로 업데이트되며 각 버전마다 새로운 기능, 개선 사항, 성능 향상, 보안 업데이트 등이 포함되어 있습니다. 다음은 몇 가지 주요 Java 버전의 차이점입니다. 더 최신 정보는 Oracle 또는 OpenJDK의 공식 문서를 참조하시기 바랍니다.

 

Java 7 (JDK 7, 2011년)

  • 다이아몬드 문법: 제네릭 인스턴스 생성 시 생성자에서 타입 파라미터를 생략할 수 있게 됨.
  • try-with-resources 문: 자동으로 자원을 해제하는 향상된 예외 처리 문법 도입.

Java 8 (JDK 8, 2014년)

  • 람다 표현식: 함수형 프로그래밍을 지원하기 위해 람다 표현식이 도입됨.
  • 스트림 API: 데이터를 다루기 위한 새로운 스트림 API 도입.
  • 디폴트 메서드: 인터페이스에서 메서드의 기본 구현을 제공할 수 있게 됨.

Java 9 (JDK 9, 2017년)

  • 모듈 시스템: 프로젝트를 모듈 단위로 나눌 수 있는 모듈 시스템이 도입됨.
  • JShell: 대화형으로 Java 코드를 실행할 수 있는 REPL(Read-Eval-Print Loop) 도구 추가.

Java 10 (JDK 10, 2018년)

  • 지역 변수 형식 추론: var 키워드를 사용하여 지역 변수의 타입을 추론할 수 있게 됨.

Java 11 (JDK 11, 2018년)

  • HTTP 클라이언트: 표준으로 제공되는 HTTP 클라이언트 추가.
  • Lambda 파라미터, Unicode 10.0, Launch Single-File Source-Code Programs 등의 새로운 기능과 변경 사항
  • 지원 종료된 모듈 제거: 여러 개의 모듈이 제거되었으며, 기타 여러 가지 개선 사항이 포함됨.

Java 12(JDK 12, 2019년)

  • switch expressions, JVM constant API, default CDS archiving
  • Shenandoah GC 등의 새로운 기능과 변경 사항

 Java SE 13 (JDK 13, 2019년)

  • switch expressions, Text blocks, Dynamic CDS 파일, ZGC 등의 새로운 기능과 변경 사항이 있습니다.

Java SE 14 (JDK 14, 2020년)

  • Java SE 14: 2020년 3월에 출시된 Java SE 14에서는 Records, Pattern Matching, Helpful NullPointerExceptions, TXT 파일, JFR 이상 감시 등의 새로운 기능과 변경 사항이 있습니다.

Java SE 15 (JDK 15, 2020년)

  • Sealed Classes, Hidden Classes, Text Blocks, ZGC 등의 새로운 기능과 변경 사항이 있습니다.

Java SE 16 (JDK 16, 2021년)

  • Records, Pattern Matching, Vector API, Unix-domain socket channels, Warnings for Value-Based Classes 등의 새로운 기능과 변경 사항이 있습니다. 

Java SE 17 (JDK 17, 2021년)

  • 봉인 클래스(Sealed Class) 정식 추가
    패턴 매칭 프리뷰 단계
  • Incubator (Foreign Function & Memory API)
  • 애플 M1 및 이후 프로세서 탑재 제품군에 대한 정식 지원(Mac 유저들 환호)
  • 난수 생성 API 추가

Java SE 18 (JDK 18, 2022년)

  • UTF-8을 Java Standard API의 기본 charset으로 설정
  • simple web server를 위한 command-line tool 제공
  • Reimplement Core Reflection with Method Handles
  • internet-address resolution SPI Deprecate finalization for Removal

Java SE 19 (JDK 19, 2022년)

  • Linux/RISC-V Port
  • Foreign Function & Memory API (Preview)
  • Virtual Threads (Preview)
  • Vector API (Fourth Incubator)
  • Pattern Matching for switch (Third Preview)
  • Structured Concurrency (Incubator)

Java SE 20 (JDK 20, 2023년 - 3월)

  • Scoped Values (Incubator)
  • Record Patterns (Second Preview)
  • Pattern Matching for switch (Fourth Preview)
  • Foreign Function & Memory API (Second Preview)
  • Virtual Threads (Second Preview)
  • Structured Concurrency (Second Incubator)
  • Vector API (Fifth Incubator)

Java SE 21 (JDK 21, 2023년 - 9월) - LTS

  • String Templates (Preview)
  • Generational ZGC
  • Record Patterns
  • Pattern Matching for switch
  • Foreign Function & Memory API (Third Preview)
  • Unnamed Patterns and Variables (Preview)
  • Virtual Threads
  • Unnamed Classes and Instance Main Methods (Preview)
  • Scoped Values (Preview)
  • Vector API (Sixth Incubator)
  • Deprecate the Windows 32-bit x86 Port for Removal
  • Prepare to Disallow the Dynamic Loading of Agents
  • Key Encapsulation Mechanism API
  • Structured Concurrency (Preview) 등의 새로운 기능이 추가되었습니다.

 

결론

이 외에도 Java의 이후 버전에서는 계속해서 새로운 기능과 개선 사항이 도입되고 있습니다. 계속해서 버전별로 업데이트가 이루어지고 있으므로, 사용 중인 Java 버전에 따라 공식 문서나 릴리스 노트를 확인하여 각 버전의 세부 사항을 참고하는 것이 좋습니다.

 
 
 

JDK

JDK Project The goal of this long-running Project is to produce a series of open-source reference implementations of the Java SE Platform, as specified by JSRs in the Java Community Process. The Project ships a feature release every six months according

openjdk.org