# 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)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://pawelwlodarski.gitbook.io/java/java-workshops/jeps.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
