> For the complete documentation index, see [llms.txt](https://pawelwlodarski.gitbook.io/java/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps.md).

# JEPS

- [JDK10](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk10.md)
- [JEP 286: Local-Variable Type Inference](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk10/jep-286-local-variable-type-inference.md)
- [JDK15](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk15.md)
- [JEP 378: Text Blocks](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk15/jep-378-text-blocks.md)
- [JDK16](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk16.md)
- [JEP 394: Pattern Matching for instanceof](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk16/jep-394-pattern-matching-for-instanceof.md)
- [JEP 395: Records](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk16/jep-395-records.md)
- [JDK17](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk17.md)
- [JEP!!! 409: Sealed Classes](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk17/jep-409-sealed-classes.md)
- [JDK 18](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk-18.md)
- [JDK19](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk19.md)
- [JDK20](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk20.md)
- [JDK21](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk21.md)
- [JEP! 431: Sequenced Collections](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk21/jep-431-sequenced-collections.md)
- [JEP 439: Generational ZGC](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk21/jep-439-generational-zgc.md)
- [JEP!!! 440: Record Patterns](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk21/jep-440-record-patterns.md)
- [JEP!!! 441: Pattern Matching for switch](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk21/jep-441-pattern-matching-for-switch.md)
- [JEP!!! 444: Virtual Threads](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk21/jep-444-virtual-threads.md)
- [JEP 451: Prepare to Disallow the Dynamic Loading of Agents](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk21/jep-451-prepare-to-disallow-the-dynamic-loading-of-agents.md)
- [JEP 452: Key Encapsulation Mechanism API](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk21/jep-452-key-encapsulation-mechanism-api.md)
- [JDK22](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk22.md)
- [JEP 423: Region Pinning for G1](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk22/jep-423-region-pinning-for-g1.md)
- [JEP 454 : Foreign Function & Memory API](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk22/jep-454-foreign-function-and-memory-api.md)
- [JEP!! 456 Unnamed Variables](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk22/jep-456-unnamed-variables.md)
- [JEP 458 : Launch Multi-File Source-Code Programs](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk22/jep-458-launch-multi-file-source-code-programs.md)
- [JDK23](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk23.md)
- [JEP 467: Markdown Documentation Comments](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk23/jep-467-markdown-documentation-comments.md)
- [JDK 24](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk-24.md)
- [JEP 472 : Prepare to Restrict the Use of JNI](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk-24/jep-472-prepare-to-restrict-the-use-of-jni.md)
- [JEP 475 : Late Barrier Expansion for G1](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk-24/jep-475-late-barrier-expansion-for-g1.md)
- [JEP 479: Remove the Windows 32-bit x86 Port](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk-24/jep-479-remove-the-windows-32-bit-x86-port.md)
- [JEP! 483: Ahead-of-Time Class Loading & Linking](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk-24/jep-483-ahead-of-time-class-loading-and-linking.md)
- [JEP! 484: Class-File API](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk-24/jep-484-class-file-api.md)
- [JEP!!! 485: Stream Gatherers](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk-24/jep-485-stream-gatherers.md): Most likely those will be created by library creators and not end user-developers but still you should know your tools
- [JEP 486: Permanently Disable the Security Manager](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk-24/jep-486-permanently-disable-the-security-manager.md)
- [JEP 490: ZGC: Remove the Non-Generational Mode](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk-24/jep-490-zgc-remove-the-non-generational-mode.md)
- [JEP 491: Synchronize Virtual Threads without Pinning](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk-24/jep-491-synchronize-virtual-threads-without-pinning.md)
- [JEP 493: Linking Run-Time Images without JMODs](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk-24/jep-493-linking-run-time-images-without-jmods.md)
- [JEP 496: Quantum-Resistant Module-Lattice-Based Key Encapsulation Mechanism](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk-24/jep-496-quantum-resistant-module-lattice-based-key-encapsulation-mechanism.md)
- [JEP 497: Quantum-Resistant Module-Lattice-Based Digital Signature Algorithm](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk-24/jep-497-quantum-resistant-module-lattice-based-digital-signature-algorithm.md)
- [JEP 501: Deprecate the 32-bit x86 Port for Removal](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk-24/jep-501-deprecate-the-32-bit-x86-port-for-removal.md)
- [JDK24 previews](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk24-previews.md)
- [JEP 404: Generational Shenandoah](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk24-previews/jep-404-generational-shenandoah.md): LINKS:
- [JEP 450 : Compact Object Headers i](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk24-previews/jep-450-compact-object-headers-i.md)
- [JEP 478 : Key Derivation Function API](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk24-previews/jep-478-key-derivation-function-api.md)
- [JEP 487: Scoped Values (Fourth Preview)](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk24-previews/jep-487-scoped-values-fourth-preview.md)
- [JEP 488: Primitive Types in Patterns, instanceof, and switch (Second Preview)](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk24-previews/jep-488-primitive-types-in-patterns-instanceof-and-switch-second-preview.md)
- [JEP 489: Vector API (Ninth Incubator)](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk24-previews/jep-489-vector-api-ninth-incubator.md)
- [JEP 492: Flexible Constructor Bodies (Third Preview)](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk24-previews/jep-492-flexible-constructor-bodies-third-preview.md)
- [JEP 494: Module Import Declarations (Second Preview)](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk24-previews/jep-494-module-import-declarations-second-preview.md)
- [JEP 495: Simple Source Files and Instance Main Methods (Fourth Preview)](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk24-previews/jep-495-simple-source-files-and-instance-main-methods-fourth-preview.md): Mainly for education but also for writing simple scripts
- [JEP 499: Structured Concurrency](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk24-previews/jep-499-structured-concurrency.md): This on is HEAVY - leave it for the end of workshops
- [JDK25](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk25.md)
- [JEP!!! 506: Scoped Values](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk25/jep-506-scoped-values.md)
- [JEP 510: Key Derivation Function API](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk25/jep-510-key-derivation-function-api.md)
- [JEP! 511: Module Import Declarations](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk25/jep-511-module-import-declarations.md)
- [JEP! 512 : Compact Source Files and Instance Main Methods](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk25/jep-512-compact-source-files-and-instance-main-methods.md): Mostly for education
- [JEP! 513: Flexible Constructor Bodies](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk25/jep-513-flexible-constructor-bodies.md)
- [JEP! 514: Ahead-of-Time Command-Line Ergonomics](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk25/jep-514-ahead-of-time-command-line-ergonomics.md)
- [JEP 515: Ahead-of-Time Method Profiling](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk25/jep-515-ahead-of-time-method-profiling.md)
- [JEP 518: JFR Cooperative Sampling](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk25/jep-518-jfr-cooperative-sampling.md)
- [JEP 519: Compact Object Headers](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk25/jep-519-compact-object-headers.md)
- [JEP! 520: JFR Method Timing & Tracing](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk25/jep-520-jfr-method-timing-and-tracing.md)
- [JEP! 521: Generational Shenandoah](https://pawelwlodarski.gitbook.io/java/java-workshops/jeps/jdk25/jep-521-generational-shenandoah.md)
