跳转到内容

自JDK 10以来的JEP列表

本文罗列了自OpenJDK 10以来各个版本的功能特性,便于追踪某些JEP跨越多个版本的孵化、预览进程。OpenJDK 9及更老版本并未采用此种快速迭代节奏。本文将不定期更新,以跟进最新的JEP计划,历史版本不会被保留。

下表中的上标#代表“孵化”(Incubator),上标*代表“预览”(Preview)。上标符号如有数字,即代表孵化/预览的次数,如*2代表“第二次预览”(Second Preview)。

FeatureJDK 1011 (LTS)121314151617 (LTS)18192021 (LTS)222324
Module Import Declarations476*
Prepare to Restrict the Use of JNI472
ZGC: Generational Mode by Default474
Deprecate the Memory-Access Methods in sun.misc.Unsafe for Removal471
Markdown Documentation Comments467
Primitive Types in Patterns, instanceof, and switch455*
Stream Gatherers461*473*2
Launch Multi-File Source-Code Programs458
Class-File API457*466*2
Statements before super(…)447*482*2
Region Pinning for G1423
Structured Concurrency428#437#2453*462*2480*3
Key Encapsulation Mechanism API452
Prepare to Disallow the Dynamic Loading of Agents451
Deprecate the Windows 32-bit x86 Port for Removal449
Unnamed Classes and Instance Main Methods445*463*2477*3
Unnamed Patterns and Variables443*456
Generational ZGC439
Sequenced Collections431
String Templates430*459*2
Scoped Values429#446*464*2481*3
Virtual Threads425*436*2444
Linux/RISC-V Port422
Record Patterns405*432*2440
Deprecate Finalization for Removal421
Internet-Address Resolution SPI418
Reimplement Core Reflection with Method Handles416
Code Snippets in Java API Documentation413
Simple Web Server408
UTF-8 by Default400
Context-Specific Deserialization Filters415
Foreign Function & Memory API412#419#2424*434*2442*3454
Deprecate the Security Manager for Removal411
Remove the Experimental AOT and JIT Compiler410
Pattern Matching for switch406*420*2427*3433*4441
Strongly Encapsulate JDK Internals403
Deprecate the Applet API for Removal398
macOS/AArch64 Port391
New macOS Rendering Pipeline382
Enhanced Pseudo-Random Number Generators356
Restore Always-Strict Floating-Point Semantics306
Strongly Encapsulate JDK Internals by Default396
Warnings for Value-Based Classes390
Foreign Linker API (Incubator)389#
Windows/AArch64 Port388
Elastic Metaspace387
Alpine Linux Port386
Unix-Domain Socket Channels380
ZGC: Concurrent Thread-Stack Processing376
Migrate to GitHub369
Migrate from Mercurial to Git357
Enable C++14 Language Features347
Vector API338#414#2417#3426#4438#5448#6460#7469#8
Deprecate & Remove RMI Activation for Removal385407
Disable and Deprecate Biased Locking374
Reimplement the Legacy DatagramSocket API373
Remove the Nashorn JavaScript Engine372
Hidden Classes371
Sealed Classes360*397*2409
Edwards-Curve Digital Signature Algorithm (EdDSA)339
Records359*384*2395
Foreign-Memory Access API370#383#2393#3
Remove the Pack200 Tools and API367
Deprecate the ParallelScavenge + SerialOld GC Combination366
ZGC on Windows365
ZGC on macOS364
Remove the Concurrent Mark Sweep (CMS) Garbage Collector363
Deprecate & Remove the Solaris and SPARC Ports362381
Helpful NullPointerExceptions358
Non-Volatile Mapped Byte Buffers352
JFR Event Streaming349
NUMA-Aware Memory Allocation for G1345
Packaging Tool343#392
Pattern Matching for instanceof305*375*2394
Text Blocks355*368*2378
Reimplement the Legacy Socket API353
ZGC: Uncommit Unused Memory351
Dynamic CDS Archives350
Promptly Return Unused Committed Memory from G1346
Abortable Mixed Collections for G1344
Default CDS Archives341
One AArch64 Port, Not Two340
JVM Constants API334
Switch Expressions325*354*2361
Microbenchmark Suite230
Shenandoah: A Low-Pause-Time Garbage Collector189379
Deprecate the Pack200 Tools and API336
Deprecate the Nashorn JavaScript Engine335
ZGC: A Scalable Low-Latency Garbage Collector333377
Transport Layer Security (TLS) 1.3332
Low-Overhead Heap Profiling331
Launch Single-File Source-Code Programs330
ChaCha20 and Poly1305 Cryptographic Algorithms329
Flight Recorder328
Unicode 10327
Key Agreement with Curve25519 and Curve448324
Local-Variable Syntax for Lambda Parameters323
LHTTP Client (Standard)321
Remove the Java EE and CORBA Modules320
Epsilon: A No-Op Garbage Collector318
Improve Aarch64 Intrinsics315
Dynamic Class-File Constants309
Nest-Based Access Control181
Time-Based Release Versioning322
Root Certificates319
Experimental Java-Based JIT Compiler317
Heap Allocation on Alternative Memory Devices316
Additional Unicode Language-Tag Extensions314
Remove the Native-Header Generation Tool (javah)313
Thread-Local Handshakes312
Application Class-Data Sharing310
Parallel Full GC for G1307
Garbage-Collector Interface304
Consolidate the JDK Forest into a Single Repository296
Local-Variable Type Inference286