This index centralizes the JEP links used by the repository. It is a lookup table, not a replacement for the version READMEs. For release months and historical naming context, use java-release-timeline.md.
Java 27 entries describe features in the Java SE 27 release. The feature
status labels below remain independent of the release's GA status: preview and
incubator features are not final merely because JDK 27 is generally available.
Status labels:
- Final: stable feature in the named release.
- Preview: available for feedback, may change later.
- Incubator: non-final incubating API, usually in an incubator module.
- Tooling: command-line, JavaDoc, launcher, or build/development support.
- Runtime: JVM, GC, diagnostics, startup, or migration behavior.
- Security: cryptography or security platform feature.
- Removal: API or platform capability removed from the JDK.
- Notes: represented as a notes class in this repository.
- Explanatory module: represented by a focused package README and notes class because a small runnable example would be misleading or require special setup.
- Example: represented by runnable example code and focused tests.
- Documentation example: represented by source documentation that is verified through JavaDoc generation.
- Experimental: an additional qualifier used when the referenced JEP describes an experimental runtime or tooling capability.
Java 1-7 predate the modern JEP process used elsewhere in this index. Their entries point to official release notes, specifications, or API documentation instead of JEP pages. See java-release-timeline.md for their release dates and naming history.
| Reference |
Feature |
Status |
| What's New in JDK 1.1 |
Inner classes, reflection, serialization, JDBC, RMI, JavaBeans, AWT updates, JAR files, JNI, internationalization |
Final, Examples |
| JavaBeans specification |
JavaBeans component conventions |
Final, Executable Example |
| Object Serialization FAQ |
Object serialization |
Final, Executable Example |
| Java language enhancements history |
strictfp and assertions |
Final, Executable Examples |
| Java 2 platform documentation |
Java 2D |
Final, Executable Example |
| J2SE 1.4 new features and enhancements |
NIO, regular expressions, XML/JAXP, integrated security APIs, logging, preferences, chained exceptions |
Final, Examples and Preferences Notes |
| Oracle J2SE 5.0 new features |
Generics, enhanced for loop, autoboxing, enums, varargs, static import, annotations, concurrency utilities |
Final, Example |
| Formatter API |
Formatted output |
Final, Example |
| Oracle Java SE 6 features |
Navigable collections, scripting, compiler API, console, monitoring, web-service support |
Final, Examples and Explanatory Modules |
| Java SE 6 scripting guide |
Scripting support |
Final, Executable Example |
| JavaCompiler API |
Compiler API |
Final, Tooling, Executable Example |
| Console API |
Console API |
Final, Tooling, Executable Example |
| Project Coin / JSR 334 |
Try-with-resources, multi-catch, diamond operator, strings in switch, binary literals, numeric underscores |
Final, Example |
| JDK 7 adoption guide |
NIO.2 and Java 7 migration features |
Final, Example |
| Java SE 7 concurrency enhancements |
Fork/join framework |
Final, Example |
| java.lang.invoke package |
invokedynamic and method handles |
Final, Tooling, Executable Example |
| JEP |
Feature |
Status |
| JEP 126 |
Lambda Expressions and Virtual Extension Methods |
Final |
| JEP 107 |
Bulk Data Operations for Collections |
Final |
| JEP 150 |
Date & Time API |
Final |
| JEP |
Feature |
Status |
| JEP 261 |
Module System |
Final, Executable Example |
| JEP 269 |
Convenience Factory Methods for Collections |
Final |
| JEP 102 |
Process API Updates |
Final |
| JEP 259 |
Stack-Walking API |
Final |
| JEP 213 |
Milling Project Coin |
Final |
| JEP |
Feature |
Status |
| JEP 286 |
Local-Variable Type Inference |
Final |
| JEP |
Feature |
Status |
| JEP 321 |
HTTP Client |
Final |
| JEP 323 |
Local-Variable Syntax for Lambda Parameters |
Final |
| JEP |
Feature |
Status |
| JEP 325 |
Switch Expressions |
Preview |
| JEP 334 |
JVM Constants API |
Final |
| JEP |
Feature |
Status |
| JEP 354 |
Switch Expressions |
Preview |
| JEP 355 |
Text Blocks |
Preview |
| JEP |
Feature |
Status |
| JEP 361 |
Switch Expressions |
Final |
| JEP 358 |
Helpful NullPointerExceptions |
Runtime |
| JEP 359 |
Records |
Preview |
| JEP 305 |
Pattern Matching for instanceof |
Preview |
| JEP 368 |
Text Blocks |
Second Preview |
| JEP |
Feature |
Status |
| JEP 378 |
Text Blocks |
Final |
| JEP 360 |
Sealed Classes |
Preview |
| JEP 375 |
Pattern Matching for instanceof |
Second Preview |
| JEP 384 |
Records |
Second Preview |
| JEP 371 |
Hidden Classes |
Final, Executable Example |
| JEP |
Feature |
Status |
| JEP 395 |
Records |
Final |
| JEP 394 |
Pattern Matching for instanceof |
Final |
| JEP 397 |
Sealed Classes |
Second Preview |
| JEP 380 |
Unix-Domain Socket Channels |
Final, Executable Example |
| JEP 338 |
Vector API |
Incubator, Notes |
| JEP 389 |
Foreign Linker API |
Incubator, Notes |
| JEP 393 |
Foreign-Memory Access API |
Third Incubator, Notes |
| JEP |
Feature |
Status |
| JEP 409 |
Sealed Classes |
Final |
| JEP 406 |
Pattern Matching for switch |
Preview |
| JEP 356 |
Enhanced Pseudo-Random Number Generators |
Final |
| JEP 403 |
Strongly Encapsulate JDK Internals |
Runtime, Executable Example |
| JEP |
Feature |
Status |
| JEP 400 |
UTF-8 by Default |
Final |
| JEP 408 |
Simple Web Server |
Tooling, Example |
| JEP 413 |
Code Snippets in Java API Documentation |
Tooling, Example |
| JEP 418 |
Internet-Address Resolution SPI |
Final, Executable Example |
| JEP |
Feature |
Status |
| JEP 425 |
Virtual Threads |
Preview |
| JEP 428 |
Structured Concurrency |
Incubator, Explanatory module |
| JEP 405 |
Record Patterns |
Preview |
| JEP 427 |
Pattern Matching for switch |
Preview |
| JEP 420 |
Pattern Matching for switch |
Second Preview |
| JEP 424 |
Foreign Function and Memory API |
Preview, Notes |
| JEP |
Feature |
Status |
| JEP 432 |
Record Patterns |
Preview |
| JEP 433 |
Pattern Matching for switch |
Preview |
| JEP 436 |
Virtual Threads |
Preview, Notes |
| JEP 429 |
Scoped Values |
Incubator, Explanatory module |
| JEP 437 |
Structured Concurrency |
Incubator, Explanatory module |
| JEP 434 |
Foreign Function and Memory API |
Preview, Notes |
| JEP 438 |
Vector API |
Incubator, Executable Example |
| JEP |
Feature |
Status |
| JEP 444 |
Virtual Threads |
Final |
| JEP 440 |
Record Patterns |
Final |
| JEP 441 |
Pattern Matching for switch |
Final |
| JEP 431 |
Sequenced Collections |
Final |
| JEP 443 |
Unnamed Patterns and Variables |
Preview |
| JEP 446 |
Scoped Values |
Preview, Explanatory module |
| JEP 453 |
Structured Concurrency |
Preview, Explanatory module |
| JEP 452 |
Key Encapsulation Mechanism API |
Final, Security, Executable example |
| JEP 442 |
Foreign Function and Memory API |
Third Preview, Notes |
| JEP 445 |
Unnamed Classes and Instance Main Methods |
Preview, Notes |
| JEP |
Feature |
Status |
| JEP 456 |
Unnamed Variables and Patterns |
Final |
| JEP 454 |
Foreign Function and Memory API |
Final, Example |
| JEP 463 |
Implicitly Declared Classes and Instance Main Methods |
Second Preview, Notes |
| JEP 461 |
Stream Gatherers |
Preview, Notes |
| JEP 457 |
Class-File API |
Preview, Notes |
| JEP 447 |
Statements before super(...) |
Preview, Notes |
| JEP 458 |
Launch Multi-File Source-Code Programs |
Final, Tooling, Executable Example |
| JEP 464 |
Scoped Values |
Preview, Notes |
| JEP 462 |
Structured Concurrency |
Preview, Notes |
| JEP |
Feature |
Status |
| JEP 467 |
Markdown Documentation Comments |
Tooling, Executable Example |
| JEP 477 |
Implicitly Declared Classes and Instance Main Methods |
Third Preview, Notes |
| JEP 455 |
Primitive Types in Patterns, instanceof, and switch |
Preview, Notes |
| JEP 476 |
Module Import Declarations |
Preview, Notes |
| JEP 482 |
Flexible Constructor Bodies |
Preview, Notes |
| JEP 473 |
Stream Gatherers |
Preview, Notes |
| JEP 466 |
Class-File API |
Preview, Notes |
| JEP 481 |
Scoped Values |
Preview, Notes |
| JEP 480 |
Structured Concurrency |
Preview, Notes |
| JEP 471 |
Deprecate the Memory-Access Methods in sun.misc.Unsafe for Removal |
Runtime, Executable Example |
| JEP 474 |
ZGC: Generational Mode by Default |
Runtime, Executable Example |
| JEP |
Feature |
Status |
| JEP 485 |
Stream Gatherers |
Final |
| JEP 484 |
Class-File API |
Final, Example |
| JEP 486 |
Permanently Disable the Security Manager |
Runtime, Executable Example |
| JEP 491 |
Synchronize Virtual Threads without Pinning |
Runtime, Executable Example |
| JEP 496 |
Quantum-Resistant Module-Lattice-Based Key Encapsulation Mechanism |
Final, Security, Example |
| JEP 497 |
Quantum-Resistant Module-Lattice-Based Digital Signature Algorithm |
Final, Security, Example |
| JEP 483 |
Ahead-of-Time Class Loading & Linking |
Runtime, Tooling, Executable Example |
| JEP 478 |
Key Derivation Function API |
Preview, Security, Notes |
| JEP 492 |
Flexible Constructor Bodies |
Preview, Notes |
| JEP 494 |
Module Import Declarations |
Preview, Notes |
| JEP 488 |
Primitive Types in Patterns, instanceof, and switch |
Preview, Notes |
| JEP 487 |
Scoped Values |
Preview, Notes |
| JEP 499 |
Structured Concurrency |
Preview, Notes |
| JEP 495 |
Simple Source Files and Instance Main Methods |
Fourth Preview, Notes |
| JEP 450 |
Compact Object Headers |
Experimental, Notes |
| JEP |
Feature |
Status |
| JEP 506 |
Scoped Values |
Final |
| JEP 513 |
Flexible Constructor Bodies |
Final |
| JEP 511 |
Module Import Declarations |
Final, Tooling, Executable Example |
| JEP 512 |
Compact Source Files and Instance Main Methods |
Final, Tooling, Executable Example |
| JEP 510 |
Key Derivation Function API |
Final, Security, Example |
| JEP 507 |
Primitive Types in Patterns, instanceof, and switch |
Preview, Executable Example |
| JEP 502 |
Stable Values |
Preview, Executable Example |
| JEP 470 |
PEM Encodings of Cryptographic Objects |
Preview, Security, Executable Example |
| JEP 505 |
Structured Concurrency |
Preview, Executable Example |
| JEP 508 |
Vector API |
Incubator, Executable Example |
| JEP 514 |
Ahead-of-Time Command-Line Ergonomics |
Runtime, Tooling, Executable Example |
| JEP 509 |
JFR CPU-Time Profiling |
Runtime, Experimental, Explanatory Module |
| JEP 518 |
JFR Cooperative Sampling |
Runtime, Explanatory Module |
| JEP 520 |
JFR Method Timing & Tracing |
Runtime, Executable Example |
| JEP 519 |
Compact Object Headers |
Runtime, Executable Example |
| JEP 521 |
Generational Shenandoah |
Runtime, Explanatory Module |
| JEP |
Feature |
Status |
| JEP 500 |
Prepare to Make Final Mean Final |
Runtime, Executable Example |
| JEP 504 |
Remove the Applet API |
Final, Removal, Executable Example |
| JEP 516 |
Ahead-of-Time Object Caching with Any GC |
Runtime, Executable Example |
| JEP 517 |
HTTP/3 for the HTTP Client API |
Final, Executable Example |
| JEP 522 |
G1 GC: Improve Throughput by Reducing Synchronization |
Runtime, Explanatory Module |
| JEP 524 |
PEM Encodings of Cryptographic Objects |
Preview, Security, Executable Example |
| JEP 525 |
Structured Concurrency |
Preview, Executable Example |
| JEP 526 |
Lazy Constants |
Preview, Executable Example |
| JEP 529 |
Vector API |
Incubator, Explanatory Module |
| JEP 530 |
Primitive Types in Patterns, instanceof, and switch |
Preview, Executable Example |
| JEP |
Feature |
Status |
| JEP 523 |
Make G1 the Default Garbage Collector in All Environments |
Runtime, Explanatory Module |
| JEP 527 |
TLS 1.3 Hybrid Key Exchange |
Final, Security, Executable Example |
| JEP 531 |
Lazy Constants |
Preview, Executable Example |
| JEP 532 |
Primitive Types in Patterns, instanceof, and switch |
Preview, Executable Example |
| JEP 533 |
Structured Concurrency |
Preview, Executable Example |
| JEP 534 |
Compact Object Headers by Default |
Runtime, Executable Example |
| JEP 536 |
JFR in-process data redaction |
Runtime, Security, Executable Example |
| JEP 537 |
Vector API |
Incubator, Explanatory Module |
| JEP 538 |
PEM Encodings of Cryptographic Objects |
Preview, Security, Executable Example |