JDK 20 is Java SE 20, JSR 395, generally available on 21 March 2023. Scoped values appear for the first time, as an incubator API. Virtual threads, record patterns, switch patterns, and the foreign function and memory API are further previews. Structured concurrency is a second incubator.
How to read the status
Preview. It can be tried with --enable-preview. A preview is not a permanent language or API guarantee.
Incubator. An incubator API is not a supported standard API. It can change or be removed.
Language
Virtual Threads (Second Preview)
JEP 436 · Preview · Language
Virtual threads are previewed again, with a small set of changes from the first preview.
First preview in Java 19 (JEP 425). Final in Java 21 (JEP 444).
Scoped values are an incubator API in this release. There is no Java 20 sample. The incubator type lived in a module that JDK 25 does not ship, so the final Java 25 example is not a Java 20 program.