NOTE: JEPS only includes software features
- Introduction
- Name
- What do you do?
- What is your experience with Java?
- What IDE do you usually use?
- How would you grade (Novice, Intermediate, Advanced) your experience with Lambdas/Streams/Optionals?
- What Operating System do you use for work/home?
- What Java version are you using for work/home?
- What other JVM languages do you use?
- SDKMan.io
- Java Almanac
- Java Playground
mcs
- JDK 9
- JDK 10
- Local-Variable Type Inference JEP 286
copyOf
inList
,Map
, andSet
- JDK 11
- String class additions:
lines()
isBlank()
repeat()
strip()
stripLeading()
stripTrailing()
Predicate.not(Predicate)
- HTTPClient API JEP 321
Files.readString()
andFiles.writeString()
Optional.isEmpty()
Collection.toArray(IntFunction)
- Null-Based Input, Output Stream and Readers
- Local-Variable Syntax for Lambda Parameters JEP 323
- String class additions:
- JDK 12
switch
expressions (Preview)teeing
collectorFiles.mismatch(Path, Path)
- Microbenchmark Suite JEP 230
- JDK 13
- JDK 14
- JDK 15
- JDK 16
- JDK 17
- Pattern Matching for Switch (Preview) JEP 406
- Sealed Classes JEP 409
- Enhanced Pseudo-Random Number Generators JEP 356
- Vector API (Second Incubator) JEP 414
- Foreign Function & Memory API (First Incubator) JEP 412
java.util.HexFormat
Process.inputReader()
,Process.outputWriter()
,Process.errorReader()
- JDK 18
- Pattern Matching for Switch (Second Preview) JEP 420
- Simple Web Server JEP 408
- Code Snippets in Java API Documentation JEP 413
- Foreign Function & Memory API (Second Incubator) JEP 412
- Vector API (Third Incubator) JEP 417
Math.ceilDiv
,Math.ceilDivExact
,Math.ceilMod
,Math.divideExact
,Math.floorDivExact
,Math.unsignedMultiplyHigh
StrictMath.ceilDiv
,StrictMath.ceilDivExact
,StrictMath.ceilMod
,StrictMath.divideExact
,StrictMath.floorDivExact
,StrictMath.unsignedMultiplyHigh
FileInputStream.transferTo(OutputStream)
- JDK 19
- Project Loom Virtual Threads (First Preview) JEP 425
- Pattern Matching for Switch (Third Preview) JEP 427
- Foreign Function & Memory API (First Preview) JEP 424
- Vector API (Fourth Incubator) JEP 426
- Project Loom Structured Concurrency (First Incubator) JEP 428
CompletableFuture.exceptionNow()
,CompletableFuture.resultNow()
,CompletableFuture.state()
- JDK 20
- JDK 21
- Record Patterns JEP 440
- Pattern Matching for
switch
JEP 441 - Foreign Function & Memory API (Third Preview) JEP 442
- Unnamed Patterns and Variables (Preview) JEP 443
- Virtual Threads JEP 444
- Unnamed Classes and Instance Main Methods (Preview) JEP 445
- Scoped Values (Preview) JEP 446
- Statements before
super()
(Preview) JEP 447 - Vector API (Sixth Incubator) JEP 448
- Structured Concurrency (Preview) JEP 453
- String Templates (First Preview) JEP 430
- JDK 22
- Statements before
super()
(Preview) JEP 447 - Foreign Function & Memory API JEP 454
- Unnamed Patterns and Variables JEP 456
- Class File API (Preview) JEP 457
- String Templates (Second Preview) JEP 459
- Launch Multi-File Source-Code Programs JEP 458
- Vector API (Seventh Incubator) JEP 460
- Stream Gatherers (Preview) JEP 461
- Structured Concurrency (Second Preview) JEP 462
- Implicitly Declared Classes and Enhanced Main Methods (Second Preview) JEP 463
- Scoped Values (Second Preview) JEP 464
- Statements before
- JDK 23
- Flexible Constructor Bodies (Second Preview) JEP 482
- Foreign Function & Memory API JEP 454
- Primitive Types in Patterns,
instanceof
, andswitch
(Preview) JEP 455 - Class File API (Second Preview) JEP 466
- Vector API (Eighth Incubator) JEP 469
- Stream Gatherers (Second Preview) JEP 461
- Structured Concurrency (Third Preview) JEP 480
- Implicitly Declared Classes and Enhanced Main Methods (Third Preview) JEP 477
- Scoped Values (Third Preview) JEP 481
- Markdown Documentation Comments JEP 467
- JDK 24
- To Be Announced (Possibly)
- Derived Record Creation (Preview) JEP 468