Java 23 is officially released

On 17 September Oracle officially released Java 23. This release delivers a bunch of enhancements and preview features among which:

  • primitive types in patterns, instance of and switch. We discussed it here
  • flexible constructor bodies, also discussed in previous article
  • module import declaration, JEP 476
  • preview of implicitly declared classes and instance main methods, JEP 477
  • preview of stream gatherers, JEP 473
  • preview of scoped values, discussed here
  • preview of structured concurrency, JEP 480
  • Vector API library in incubator, JEP 469
  • preview of class-file API, JEP 466
  • making generational mode a default mode of ZGC, JEP 474
  • markdown comments, JEP 467
  • memory access methods in sun.misc.unsafe, JEP 471

    Early access to Java 24

    New build of JDK 24 is available, link

    GraalVM

    Together with release of Java 23 GraalVM team also made a release which:

  • provides support of new features from Java 23
  • improves performance and memory footprint of applications with native image
  • provides new compacting garbage collector, that allows to use less memory without affecting performance
  • improves executables size, in the given example improvement was 35%. All we need to do is to use -Os flag to benefit from this new optimisation level
  • adds bill of materials files to java classpath which can be explored using actuator for example
  • etc. Also, Kafka introduced support for GraalVM Native Image which brought great performance improvements. Improvement was based on this proposal

    Spring released a lot of new version

    There were multiple releases in Spring ecosystem, article on InfoQ does a great job summarizing them.

    Gradle

    New version 8.10.1 of Gradle is released. For more details read this article

Updated: