java:version

문서의 이전 판입니다!


제공 지원종료 (확장)
Oracle 2030. 09 (2033. 09)

Java SE 25

제공 지원종료 (확장)
Oracle 2025. 09
Azul 2025. 09

Java SE 24

제공 지원종료 (확장)
Oracle 2025. 03
Azul 2025. 03

Java SE 23

제공 지원종료 (확장)
Oracle 2024. 09
Eclipse Temurin 2024. 09
Azul 2024. 09

Java SE 22

제공 지원종료 (확장)
Oracle 2028. 09 (2031. 09)
Eclipse Temurin 2029. 10
Azul 2031. 09
Amazon Corretto 2023. 10
Redhat 2029. 11

Java SE 21

  • JEP 430: String Templates (Preview)
  • JEP 431: Sequenced Collections
  • JEP 439: Generational ZGC
  • JEP 440: record 패턴(cf. Tuple)
  • JEP 441: switch 패턴 매칭
  • JEP 442: Foreign Function & Memory API (Third Preview)
  • JEP 443: 무명 패턴과 변수 (Preview)
  • JEP 444: 가상 스레드(Virtual Threads)
  • JEP 445: 메인 메소드의 무명 클래스와 인스턴스 (Preview)
  • JEP 446: Scoped Values (Preview)
  • JEP 448: Vector API (Sixth Incubator)
  • JEP 449: Windows 32-bit x86 Port deprecated for Removal
  • JEP 451: Prepare to Disallow the Dynamic Loading of Agents
  • JEP 452: Key Encapsulation Mechanism API
  • JEP 453: 구조화된 동시성(Structured Concurrency) (Preview)

JEP 445

· 2024/01/27 15:11
제공 지원종료 (확장)
Oracle 2023. 09
OpenJDK 2023. 09
Eclipse Temurin 2023. 09
Oracle 2023. 09
Amazon Corretto 2023. 10.

Java SE 20

  • JEP 429: Scoped Values (Incubator)
  • JEP 432: Record Patterns (Second Preview)
  • JEP 433: Pattern Matching for switch (Fourth Preview)
  • JEP 434: Foreign Function & Memory API (Second Preview)
  • JEP 436: Virtual Threads (Second Preview)
  • JEP 437: Structured Concurrency (Second Incubator)
  • JEP 438: Vector API (Fifth Incubator)
· 2024/01/27 15:08
제공 지원종료 (확장)
Oracle 2023. 09
OpenJDK 2022. 09
Eclipse Temurin 2023. 03
Azul 2023. 09
Amazon Corretto 2023. 04

Java SE 19

  • JEP 405: Record Patterns (Preview)
  • JEP 422: Linux/RISC-V Port
  • JEP 424: Foreign Function & Memory API (Preview)
  • JEP 425: Virtual Threads (Preview)
  • JEP 426: Vector API (Fourth Incubator)
  • JEP 427: Pattern Matching for switch (Third Preview)
  • JEP 428: Structured Concurrency (Incubator)

JEP 405

· 2024/01/27 15:06
제공 지원종료 (확장)
Oracle 2022. 09
OpenJDK 2022. 09
Eclipse Temurin 2022. 09
Azul 2022. 09
Amazon Corretto 2022. 10

Java Se 18

  • JEP 400: UTF-8이 기본
  • JEP 408: Simple Web Server
  • JEP 413: Code Snippets in Java API Documentation
  • JEP 416: Reimplement Core Reflection with Method Handles
  • JEP 417: Vector API (Third Incubator)
  • JEP 418: Internet-Address Resolution SPI
  • JEP 419: Foreign Function & Memory API (Second Incubator)
  • JEP 420: switch 패턴 매칭 (Second Preview)
  • JEP 421: Finalization deprecated
· 2024/01/27 15:04
제공 지원종료 (확장)
Oracle 2026. 09 (2029. 09)
OpenJDK SAP 유지보수중
Eclipse Temurin 2027. 10
Azul 2029. 09
Amazon Corretto 2029. 10
Red Hat 2027. 10
IBM Semeru 2027. 10
Microsoft 2027. 09

Java SE 17

  • JEP 306: Restore Always-Strict Floating-Point Semantics
  • JEP 356: Enhanced Pseudo-Random Number Generators
  • JEP 382: New macOS Rendering Pipeline
  • JEP 391: macOS/AArch64 Port
  • JEP 398: Applet API deprecated
  • JEP 403: Strongly Encapsulate JDK Internals
  • JEP 406: switch 패턴 매칭 (Preview)
  • JEP 407: RMI Activation 제거
  • JEP 409: 봉인된 클래스(sealed)
  • JEP 410: AOT and JIT Compiler
  • JEP 411: Deprecate the Security Manager for Removal
  • JEP 412: Foreign Function & Memory API (Incubator)
  • JEP 414: Vector API (Second Incubator)
  • JEP 415: Context-Specific Deserialization Filters

JEP 406

· 2024/01/27 14:58
제공 지원종료 (확장)
Oracle 2021. 09
Azul 2021. 09
Amazon Corretto 2021. 10

Java SE 16

  • JEP 338: 벡터 API (Incubator)
  • JEP 347: C++14 언어 기능 활성화
  • JEP 357: Mercurial에서 Git로 마이그레이션
  • JEP 369: GitHub로 마이그레이션
  • JEP 376: ZGC: Concurrent Thread-Stack Processing
  • JEP 380: Unix-Domain Socket Channels
  • JEP 386: Alpine Linux Port – not yet stable
  • JEP 387: Elastic Metaspace
  • JEP 388: Windows/AArch64 Port
  • JEP 389: Foreign Linker API (Incubator)
  • JEP 390: Warnings for Value-Based Classes
  • JEP 392: 패키징 툴
  • JEP 393: Foreign-Memory Access API (Third Incubator)
  • JEP 394: instanceof 패턴 매칭
  • JEP 395: Records (record - cf. Tuple)
  • JEP 396: Strongly Encapsulate JDK Internals by Default
  • JEP 397: Sealed Classes (Second Preview)
· 2024/01/27 14:49
제공 지원종료 (확장)
Oracle 2021. 03
Azul 2023. 03
Amazon Corretto 2021. 04

Java SE 15

  • JEP 339: Edwards-Curve Digital Signature Algorithm (EdDSA)
  • JEP 360: 봉인된 클래스 (Preview)
  • JEP 371: 히든 클래스
  • JEP 372: Nashorn JavaScript Engine
  • JEP 373: Reimplement the Legacy DatagramSocket API
  • JEP 374: Disable and Deprecate Biased Locking
  • JEP 375: Pattern Matching for instanceof (Second Preview)
  • JEP 377: ZGC: A Scalable Low-Latency Garbage Collector
  • JEP 378: Text Blocks('' """statements""" '')
  • JEP 379: Shenandoah: A Low-Pause-Time Garbage Collector
  • JEP 381: Remove the Solaris and SPARC Ports
  • JEP 383: Foreign-Memory Access API (Second Incubator)
  • JEP 384: Records (Second Preview)
  • JEP 385: RMI Activation deprecated

JEP 360

· 2024/01/27 14:41
제공 지원종료 (확장)
Oracle 2020. 09
Azul 2020. 09

Java SE 14

  • JEP 305: instnaceof를 위한 패턴 매칭 (Preview)
  • JEP 343: Packaging Tool (Incubator)
  • JEP 345: NUMA-Aware Memory Allocation for G1
  • JEP 349: JFR Event Streaming
  • JEP 352: Non-Volatile Mapped Byte Buffers
  • JEP 358: Helpful NullPointerExceptions
  • JEP 359: Records (Preview)
  • JEP 361: switch 표현 (Standard)
  • JEP 362: Solaris and SPARC Ports deprecated
  • JEP 363: Concurrent Mark Sweep (CMS) Garbage Collector
  • JEP 364: ZGC on macOS
  • JEP 365: ZGC on Windows
  • JEP 366: ParallelScavenge + SerialOld GC Combination deprecated
  • JEP 367: Pack200 Tools and API
  • JEP 368: Text Blocks (Second Preview)
  • JEP 370: Foreign-Memory Access API (Incubator)

JEP 305

JEP 359

· 2024/01/26 04:16
제공 지원종료 (확장)
Oracle 2020. 03
Azul 2023. 03

Java SE 13

  • JEP 350: Dynamic CDS Archives
  • JEP 351: ZGC: Uncommit Unused Memory
  • JEP 353: Reimplement the Legacy Socket API
  • JEP 354: switch 표현 (Preview)
  • JEP 355: 텍스트 블럭 (Preview)

JEP 355

· 2024/01/26 04:04
제공 지원종료 (확장)
Oracle 2019. 09
Azul 2019. 09

Java SE 12

  • JEP 189: Shenandoah: A Low-Pause-Time Garbage Collector (Experimental)
  • JEP 230: Microbenchmark Suite
  • JEP 325: switch 표현 (Preview)
  • JEP 334: JVM Constants API
  • JEP 340: One AArch64 Port, Not Two
  • JEP 341: Default CDS Archives
  • JEP 344: Abortable Mixed Collections for G1
  • JEP 346: Promptly Return Unused Committed Memory from G1

JEP 325

· 2024/01/26 03:54
제공 지원종료 (확장)
Oracle 2023. 09 (2032. 01)
OpenJDK Red Hat 유지보수중
Eclipse Temurin 2027. 10
Azul 2032. 01
Amazon Corretto 2027. 10
Red Hat 2024. 10
IBM Semeru 2024. 10
Microsoft 2024. 10

Java SE 11

  • JEP 181: Nest-Based Access Control
  • JEP 309: Dynamic Class-File Constants
  • JEP 315: Improve Aarch64 Intrinsics
  • JEP 318: Epsilon: A No-Op Garbage Collector
  • JEP 320: Remove the Java EE and CORBA Modules
  • JEP 321: HTTP Client (Standard)
  • JEP 323: Local-Variable Syntax for Lambda Parameters
  • JEP 324: Key Agreement with Curve25519 and Curve448
  • JEP 327: Unicode 10
  • JEP 328: Flight Recorder
  • JEP 329: ChaCha20 and Poly1305 Cryptographic Algorithms
  • JEP 330: Launch Single-File Source-Code Programs
  • JEP 331: Low-Overhead Heap Profiling
  • JEP 332: Transport Layer Security (TLS) 1.3
  • JEP 333: ZGC: A Scalable Low-Latency Garbage Collector (Experimental)
  • JEP 335: Deprecate the Nashorn JavaScript Engine
  • JEP 336: Deprecate the Pack200 Tools and API

A number of features from previous releases were dropped; in particular, Java applets and Java Web Start are no longer available. JavaFX, Java EE and CORBA modules have been removed from JDK.

· 2024/01/25 14:13
제공 지원종료 (확장)
Oracle 2018. 09
OpenJDK 2018. 09
Azul 2018. 09

Java SE 10

  • JEP 286: 지역 변수 타입 추론 (var)
  • JEP 296: JDK Forest를 단일 저장소로 통합
  • JEP 304: Garbage-Collector 인터페이스
  • JEP 307: Parallel Full GC for G1
  • JEP 310: Application Class-Data Sharing
  • JEP 312: Thread-Local Handshakes
  • JEP 313: Native-Header Generation Tool(javah) 제거
  • JEP 314: Additional Unicode Language-Tag Extensions
  • JEP 316: 다른 메모리 장치에서의 힙 할당
  • JEP 317: 실험적인 Java-Based JIT 컴파일러
  • JEP 319: 루트 인증서
  • JEP 322: Time-Based Release Versioning

[[JEP 286]] 지역변수 타입 추론

· 2024/01/25 14:05
제공 지원종료 (확장)
Oracle 2018. 03
OpenJDK 2018. 03
Azul 2018. 03

Java SE 9

  • JSR 376: Project Jigsaw의 JDK 모듈화(Java Platform Module System)
  • JavaDB
  • JEP 193: Variable handles, define a standard means to invoke the equivalents of various java.util.concurrent.atomic and sun.misc.Unsafe operations
  • JEP 213: Milling Project Coin, private 인스턴스 메소드에서 @SafeVarargs 어노테이션 허용; the try-with-resources 구문에서 효과적인 final 변수 사용 허용; 유추된 유형의 인수가 추론가능한 경우 익명 클래스에서 다이아몬드(<>) 허용; Complete the removal, begun in Java SE 8, of underscore from the set of legal identifier names; 인터페이스에서 private 메소드 지원
  • JEP 222: jshell: The Java Shell (Read-Eval-Print Loop): JShell은 자바 언어를 위한 REPL 명령줄 인터페이스입니다.
  • JEP 254: Compact Strings
  • JEP 263: HiDPI graphics: automatic scaling and sizing
  • JEP 266: Reactive Streams의 자바 구현을 포함하고, Reactive Streams에서 이전에 제공된 인터페이슬 포함하는 새로운 Flow 클래스를 포함하는 더 많은 동시성 업데이트.
  • JEP 268: XML catalogs
  • JEP 282: jlink: The Java Linker, create a tool that can assemble and optimize a set of modules and their dependencies into a custom run-time image. It effectively allows to produce a fully usable executable including the JVM to run it
  • JEP 295: Ahead-of-Time Compilation, ahead-of-time compilation provided by GraalVM
· 2024/01/25 13:28
제공 지원종료 (확장)
Oracle 2022. 03 (2030. 12)
OpenJDK Red Hat 유지보수중
Oracle (비상업용) 2030. 12
Eclipse Temurin 2026. 11
Oracle (상업용) 2022. 3
Azul 2030. 12
Amazon Corretto 2026. 7
Red Hat 2026. 11
IBM Semeru 2026. 5

Java SE 8(1.8) LTS

  • JSR 335, JEP 126: Project Lambda 에서 람다 표현식(lambda espressions, 클로저 clusures) 및 기존 구현을 해치지 않고 인터페이스에 메소드를 추가할 수 있는 default 메서드(가상 확장 메서드)를 언어 수준에서 지원.
  • JEP 174: Project Nashorn, a JavaScript runtime which can run JavaScript code embedded within applications
  • JEP 104: 자바 타입에 대한 어노테이션
  • 부호 없는 정수 연산
  • JEP 120: 반복적인 어노테이션
  • JEP 150: Date and time API
  • JEP 178: 정적으로 연결된 JNI 라이브러리
  • JEP 153: Launch JavaFX applications (direct launching of JavaFX application JARs)
  • JEP 122: Remove the permanent generation
· 2024/01/25 00:58
제공 지원종료 (확장)
OpenJDK 2022. 09
Azul 2022. 9 (2027. 11)
Oracle 2020. 8
Oracle 2015. 5
Redhat 2020. 6

Java SE 7 (Dolphin)

  • JVM : Dynamic Language support (`invokedynamic` * new byte operation)
  • 64bit pointer
  • switch(string) 문자열 허용
  • try: try(resource) close (AutoClosable, Closeable interface)
public static void main(String args[]) { // 이전
  FileInputStream fin = null;
  BufferedReader br = null; 
  try { 
    fin = new FileInputStream("info.xml"); 
    br = new BufferedReader(new InputStreamReader(fin)); 
    if (br.ready()) { 
      String line1 = br.readLine(); 
      System.out.println(line1); 
    } 
  } catch (Exception ex) { 
    System.out.println("error!!"); 
  } finally { 
    try {
      if (fin != null) fin.close(); 
      if (br != null) br.close(); 
    } catch (IOException ie) { 
      System.out.println("Failed to close files"); 
    } 
  } 
}
 
public static void main(String args[]) {
  try (FileInputStream fin = new FileInputStream("info.xml");
       BufferedReader br = new BufferedReader(new InputStreamReader(fin));) {
    if (br.ready()) {
      String line1 = br.readLine();
      System.out.println(line1);
    }
  } catch (Exception ex) {
    System.out.println("error");
  }
}
  • generics 내 타입 추론: < > 연산자
// 이전 버전
Map<String, Object> user = new HashMap<String, Object>();
// 추론
Map<String, Object> user = new HashMap<> ();
  • varargs 단순화 정의
  • Binary integer Literals
  • underscore 000_000_000
  • Catching multiple exception types
  • API
    • Concurrency 강화
    • NIO: java.nio.file, java.nio.file.attribute, java.nio.file.spi
    • sort강화 (merge sort)
    • crypto강화
    • GPU강화
  • JavaFX가 기본으로 포함
    • 정식 G1 GC
  • 안정적인 ARM지원
  • 한정적 와일드 카드 사용시 정확한 추론 못함. → 명시적 타입 인수(explicit type arguement)사용 또는 1.8 사용
제공 지원종료 (확장)
OpenJDK 2013. 04
Azul 2018. 11 (2027. 11)
Redhat 2016. 11

Java SE 1.6 (Mustang)

  • G1(Garbage First) GC : 시험용
  • 제너릭 Generics: provides compile-time (static) type safety for collections and eliminates the need for most typecasts (type conversion) (specified by JSR 14)
  • 메타데이터 Metadata 어노테이션 Annotation @: allows language constructs such as classes and methods to be tagged with additional data, which can then be processed by metadata-aware utilities (specified by JSR 175)
  • 오토박싱/언박싱 Autoboxing/unboxing (Wrapping): automatic conversions between primitive types (such as int) and primitive wrapper classes (such as Integer) (specified by JSR 201)
  • 열거형 Enumerations enum : the enum keyword creates a typesafe, ordered list of values (such as Day.MONDAY, Day.TUESDAY, etc.); previously this could only be achieved by non-typesafe constant integers or manually constructed classes (typesafe enum pattern) (specified by JSR 201)
  • 가변인수 Varargs: the last parameter of a method can now be declared using a type name followed by three dots (e.g. void drawtext(String… lines)); in the calling code any number of parameters of that type can be used and they are then placed in an array to be passed to the method, or alternatively the calling code can pass an array of that type
  • 향상된 for each 루프: the for loop syntax is extended with special syntax for iterating over each member of either an array or any Iterable, such as the standard Collection classes (specified by JSR 201)
  • Improved semantics of execution for multi-threaded Java programs; the new Java memory model addresses issues of complexity, effectiveness, and performance of previous specifications
  • 정적 임포트 Static imports

standard libraries 변경점:

  • Automatic stub generation for RMI objects
  • Swing: New skinnable look and feel, called synth
  • 동시성 유틸(java.util.concurrent)
  • Scanner class for parsing data from various input streams and buffers
· 2024/01/28 11:21

J2SE 1.4 (Marlin)

  • assert keyword
  • Regular Expressions 정규표현식
  • Java Web Start
  • Java Comunity Process (JCP) → 오픈소스
  • Java 2 Secruity
  • Non-blocking I/O (NIO)
  • API
    • Preferences API (java.util.prefs)

J2SE 1.3 (Kestrel)

  • HotSpot JVM(Sun JIT)
  • Java Naming and Directory Interface (JNDI)
  • JPDA
  • JavaSound

J2SE 1.2 (Playground)

  • strctfp
  • Swing GUI
  • Java plug-in
  • CORBA IDL(이종기기간 함수 호출 스팩)
  • Collections Framework
  • JIT

JDK 1.1

  • AWT event
  • inner class
  • JavaBeans
  • JDBC
  • RMI (Remote Method Invocation)
  • reflection
  • JIT (Just In Time) complier
  • Internationalization & Unicode
  • /home/u613600155/domains/cli.zerotymer.net/public_html/data/attic/java/version.1706441096.txt.gz
  • 마지막으로 수정됨: 2024/01/28 11:24
  • 저자 writer