Skip to content

Latest commit

 

History

History
363 lines (284 loc) · 11.4 KB

java-versions.md

File metadata and controls

363 lines (284 loc) · 11.4 KB

Java SE versions Overview

Java 25 - LTS

Vendor Inception Date Magic Number
Oracle Corporation 2025-09 0x45 / 68
Vendor Inception Date Magic Number
Oracle Corporation 2025-03 0x44 / 67
  • Class-File API
  • Stream Gatherers
  • Structured Concurrency & Scoped Values (Preview V4)
  • Vector API (Preview V9)
  • Pattern matching for primitives (Preview V2)
Vendor Inception Date Magic Number
Oracle Corporation 2024-09 0x43 / 67
  • JavaDoc Markdown Documentation Comments
  • Class-File API (Preview V2)
  • Stream Gatherers (Preview V2)
  • Structured Concurrency & Scoped Values (Preview V3)
  • Vector API (Preview V8)
  • Pattern matching for primitives (Preview V1)
Vendor Inception Date Magic Number
Oracle Corporation 2024-03 0x42 / 66
  • Statements before super(..) (Preview V1)
  • Vector API (Preview V7)
  • Stream Gatherers (Preview V1)
  • Structured Concurrency & Scoped Values (Preview V2)
  • String Templates (Preview V2)
  • Launch Multi-File Source-Code Programs
  • Class-File API (Preview V1)

Java 21 - LTS

Vendor Inception Date Magic Number
Oracle Corporation 2023-09 0x41 / 65
  • Virtual Threads
  • Scoped Values (Preview V1)
  • Record deconstruction pattern
  • Sequenced Collections
  • Pattern Matching for switch
  • Vector API (Preview V6)
  • String Templates (Preview V1)
  • Structured Concurrency & Scoped Values (Preview V1)
Vendor Inception Date Magic Number
Oracle Corporation 2023-04 0x40 / 64
  • Virtual Threads (Preview V2)
  • Pattern Matching for switch (Preview V4)
  • Record deconstruction pattern (Preview V2)
  • Vector API (Preview V5)
Vendor Inception Date Magic Number
Oracle Corporation 2022-09 0x3F / 63
  • JEP 425: Virtual Threads (Preview V1)
  • Pattern Matching for switch (Preview V3)
  • Record deconstruction pattern (Preview)
  • Vector API (Preview V4)
Vendor Inception Date Magic Number
Oracle Corporation 2022-04 0x3E / 62
  • UTF-8 as default charset across platforms
  • new @snippet tag in javadoc
  • Pattern Matching for switch (Preview V2)
  • Deprecate Finalization for Removal
  • cacerts in PKCS#12 with no default password
  • Vector API (Preview V3)

Java 17 - LTS

Vendor Inception Date Magic Number
Oracle Corporation 2021-09 0x3D / 61
Vendor Inception Date Magic Number
Oracle Corporation 2021-04 0x3C / 60
  • Sealed Classes (Preview V2)
  • Records
  • Pattern Matching for instanceof
  • Stream.mapMulti()
  • Tool: jpackage
  • Vector API (Preview V1)
Vendor Inception Date Magic Number
Oracle Corporation 2020-09 0x3B / 59
  • Sealed Classes (Preview V1)
  • Hidden Classes
  • Records (Preview V2)
  • Pattern Matching for instanceof (Preview V2)
  • Text Blocks / Raw String Literals
  • Nashorn removal
  • Z & Shenandoah GC
  • Optimized StringConcatFactory
  • Helpful NullPointerException
  • CharSequence.isEmpty()
Vendor Inception Date Magic Number
Oracle Corporation 2020-04 0x3A / 58
  • Pattern Matching for instanceof (Preview V1)
  • Records (Preview V1)
  • Text Blocks / Raw String Literals (Preview V2)
  • Helpful NullPointerException (Preview)
  • Switch expressions
  • @java.util.Serial annotation
Vendor Inception Date Magic Number
Oracle Corporation 2019-09 0x39 / 57
  • Text Blocks / Raw String Literals (Preview V1)
  • Switch expressions (Preview V2)
  • Socket API V2
  • Dynamic CDS Archives
  • Unicode 12.1
Vendor Inception Date Magic Number
Oracle Corporation 2019-03 0x38 / 56
  • Raw String Literals (Preview)
  • Switch expressions (Preview V1)
  • Microbenchmark
  • Compact Number Format
  • Files.mismatch()
  • String.indent(), String.transform()

Java 11 - LTS

Vendor Inception Date Magic Number
Oracle Corporation 2018-09 0x37 / 55
  • Local-variable syntax for lambda parameters
  • HTTP Client
  • Running Single File Source Code
  • TLS 1.3
  • String.repeat(), String.lines(), String.strip(), String.isBlank()
  • OutputStream.nullOutputStream()
  • Optional*.isEmpty()
  • 🚫 JavaFX, Java EE and CORBA removed
Vendor Inception Date Magic Number
Oracle Corporation 2018-03 0x36 / 54
  • Local-variable type inference : var
  • Collectors.toUnmodifiableList()
  • List.copyOf()
  • Optional*.orElseThrow()
  • G1GC improvements
Vendor Inception Date Magic Number
Oracle Corporation 2017-09 0x35 / 53
  • Modules (Jigsaw)
  • Collections Framework Enhancements & Collection Factory Methods
  • Optional Enhancements : ifPresentOrElse(), or(), stream()
  • Process API Enhancements
  • JShell
  • HashMap.computeIfAbsent() throws ConcurrentModificationException
  • Stack Walking API
  • Flow "Reactive" API
  • Private methods in Interfaces
  • JVM options GNU Styles (ex: --help, --class-path)
  • System.getLogger()
  • String Concatenation with invokedynamic
  • UTF-8 Properties Files

Java 8 - LTS

Vendor Inception Date Magic Number
Oracle Corporation 2014-03 0x34 / 52
  • Optional
  • Lambda
  • Streams
  • Interfaces with default methods
  • Interfaces with static methods
  • Date & Time API (ex-Joda time)
  • JDBC 4.2
  • String.join() / StringJoiner
  • Repeating annotations
  • PrimitiveIterator
  • MetaSpace
Vendor Inception Date Code name Magic Number
Oracle Corporation 2011-07 Dolphin 0x33 / 51
  • Diamond Operator (type inference)
  • Switch String
  • Try with resources
  • Try multi-catch (|)
  • ForkJoinPool
  • JDBC 4.0
  • java.nio.Files
  • Binary integer literals, underscores in numeric literals
  • TransferQueue
  • ThreadLocalRandom
Vendor Inception Date Code name Magic Number
Sun Microsystems 2006-12 Mustang 0x32 / 50
  • Common annotations : @Generated, @PostConstruct, @PreDestroy, @Resource, @Resources
  • @Override for interfaces methods
  • JDBC 4.0
  • ServiceLoader public
  • Desktop
  • JAXB 2, StAX, JAX-WS
  • Class File Specification Update
  • Queues & Deques
  • String.isEmpty(), Arrays.copyOf(), System.console()
  • * support in classpath
  • NavigableSet, NavigableMap, ConcurrentNavigableMap

Java 5.0

Vendor Inception Date Code name Magic Number
Sun Microsystems 2004-09 Tiger 0x31 / 49
  • Generics
  • Enum
  • Annotations
  • Auto-boxing
  • For each loops & Iterable
  • Var args
  • java.util.concurrent
  • Static imports
  • StringBuilder
  • java.util.Scanner
  • XPath
  • ProcessBuilder

Java 1.4

Vendor Inception Date Code name Magic Number
Sun Microsystems 2002-02 Merlin 0x30 / 48
  • Java Web Start
  • String.split
  • JDBC 3.0
  • JAXP
  • assert
  • Exception chaining
  • Image I/O API
  • JCE, JSSE, JAAS
  • java.util.prefs

Java 1.3

Vendor Inception Date Code name Magic Number
Sun Microsystems 2000-05 Kestrel 0x2F / 47
  • JNDI
  • Logging API
  • Java Platform Debugger Architecture (JPDA)

Java 1.2

Vendor Inception Date Code name Magic Number
Sun Microsystems 1998-12 Playground 0x2E / 46
  • Reflexion API
  • Collections API : List, Set, Map, ArrayList, LinkedList, ...
  • strictfp
  • Swing API

Java 1.1

Vendor Inception Date Code name Magic Number
Sun Microsystems 1997-02 0x2D / 45
  • Inner classes
  • Java beans
  • JDBC
  • RMI

Java 1

Vendor Inception Date Code name Magic Number
Sun Microsystems 1996-01 Oak ?