Skip to content

dhinojosa/whats-new-java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

What's new in Java 2024

Open in Gitpod

Outline

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 grade (Novice, Intermediate, Advanced) your experience with Lambdas/Streams/Optionals?
    • What Java version are you using for work/home?
    • What other JVM languages do you use?
  • SDKMan.io
  • Java Almanac
  • JDK 9
    • JShell JEP 222
    • Immutable/Convenience Factory Methods for Collections JEP 269
    • Module System JEP 261
    • JLink JEP 282
    • Process Handles
    • Flow API JEP 266
    • Functional and Stream Additions
    • HTTP2 Client (Preview) JEP 110
    • Var Handles JEP 193
    • IntStream CharSequence.chars()
    • Objects.checkIndex()
  • JDK 10
    • Local-Variable Type Inference JEP 286
    • copyOf in List, Map, and Set
  • JDK 11
    • String class additions:
      • lines()
      • isBlank()
      • repeat()
      • strip()
      • stripLeading()
      • stripTrailing()
    • Predicate.not(Predicate)
    • HTTPClient API JEP 321
    • Files.readString() and Files.writeString()
    • Optional.isEmpty()
    • Collection.toArray(IntFunction)
    • Null-Based Input, Output Stream and Readers
    • Local-Variable Syntax for Lambda Parameters JEP 323
  • JDK 12
    • switch expressions (Preview)
    • teeing collector
    • Files.mismatch(Path, Path)
    • Microbenchmark Suite JEP 230
  • JDK 13
    • Text Blocks (First Preview) JEP 355
    • Reimplemented Socket API JEP 353
    • FileSystems.newFileSystem() Method
    • switch expressions (Second Preview) JEP 254
  • JDK 14
    • Records (Preview) JEP 359
    • Text Blocks (Second Preview) JEP 368
    • Pattern Matching for instanceof (Preview) JEP 305
    • switch expressions (Final) JEP 361
    • Reimplemented DataSocket API JEP 353
    • Helpful NullPointerExceptions JEP 358
  • JDK 15
  • JDK 16
    • Stream.toList, Stream.toArray
    • Vector API (First Incubator) JEP 338
    • Records (Final) JEP 395
    • Sealed Classes (Second Preview) JEP 397
    • Packaging Tool JEP 392
    • Foreign-Memory Access API (Third Incubator) JEP 393
    • Pattern Matching for instanceof (Final) JEP 394
  • 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
    • Pattern Matching for switch (Forth Preview) JEP 433
    • Record Patterns (Second Preview) JEP 432
    • Project Loom Virtual Threads (Second Preview) JEP 436
    • Foreign Function & Memory API (Second Preview) JEP 434
    • Project Loom Structured Concurrency (Second Incubator) JEP 437
  • 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
    • Primitive Types in Patterns, instanceof, and switch (Preview) JEP 455
    • 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
    • Implicit Declared Classes and Enhanced Main Methods (Second Preview) JEP 463
    • Scoped Values (Second Preview) JEP 464
  • To Be Announced (Possibly)
    • Markdown Documentation Comments JEP 467
    • Derived Record Creation (Preview) JEP 468

About

Java new Advancements from JDK 9 to Today

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages