Java SE 23 presenta millores de rendiment, en compilador i vuit funcions de vista prèvia

java 23

JDK 23 porta 12 millores clau, des de tipus primitius fins a importacions de mòduls

Fa pocs dies, Oracle va donar a conèixer mitjançant una publicació de bloc el llançament de la nova versió de Java SE 23. Llançada com una versió de suport regular (rebreu actualitzacions fins a la següent versió). Les versions LTS, com Java SE 21 i Java SE 17, tindran suport estès fins a 2031 i 2029, respectivament, mentre que Java SE 8 i SE 11 seguiran rebent suport ampliat fins a 2030 i 2032.

Entre les 23 noves característiques de Java SE 23, destaca la activació per defecte del Generational Z Garbage Collector, un mode d'operació generatiu que separa el processament d'objectes. Això millora l'eficiència en la neteja d'objectes, redueix la càrrega a la CPU, el consum de memòria i el risc de bloquejos a l'assignació de recursos.

Una altra novetat és la inclusió de suport per a Markdown a JavaDoc, cosa que facilita la documentació de codi en permetre l'ús de Markdown en lloc d'etiquetes HTML combinades amb JavaDoc.

A Java SE 23 el patró de coincidència també s'ha millorat per admetre tipus primitius, permetent el seu ús a la declaració «en lloc de» i en blocs switch. Això permet manejar tipus primitius, com int o byte, directament en estructures de control de flux, millorant la claredat i funcionalitat del codi.

Java SE 23 introdueix a més el suport preliminar per a la declaració d'importació de mòduls amb import module M, cosa que permet importar tots els paquets exportats per un mòdul específic en una sola línia.

Un altre aspecte important és la actualització de JavaFX 23, una plataforma millorada per al desenvolupament d'interfícies gràfiques. Amb això, el compilador GraalVM JIT ha estat integrat al JDK principal d'Oracle, oferint més rendiment i optimització en temps d'execució.

Quant a GraalVM, la seva nova versió presenta suport per a la execució d'aplicacions en una àmplia varietat de llenguatges, a més de llenguatges que generen codi LLVM, com C, C++ i Rust. Aquesta versió millora el consum de memòria, redueix la mida del codi executable, i ofereix suport per incrustar Python i WebAssembly en codi Java mitjançant compilació JIT.

D'altra banda, es presenta la vuitena vista prèvia de la Vector API a Java SE 23 que introdueix funcions avançades per fer càlculs vectorials que aprofiten les instruccions SIMD en processadors x86_64 i AArch64. Aquesta API permet als desenvolupadors controlar explícitament la vectorització de les operacions, a diferència de la vectorització automàtica que ofereix el compilador HotSpot JIT. Això millora el rendiment en processar dades en paral·lel.

També s'ha introduït una segona implementació preliminar d'una API Stream estesa, que permet la definició d'operacions intermèdies personalitzades, útils quan les transformacions de dades estàndard no són suficients.

Dels altres canvis que sé destaquen d'aquesta nova versió:

  • Els mètodes per accedir a la memòria externa (fora de la JVM) proporcionats per la classe sun.misc.Unsafe han estat marcats com a obsolets i es planeja la seva eliminació en futures versions.
  • La classe java.io.Console ara inclou nous mètodes com format, printf, readPassword i readLine.
  • Es presenta una segona implementació preliminar de l'API Class-File, que facilita l'anàlisi, la generació i la conversió d'arxius de classe Java, permetent més flexibilitat en la manipulació de bytecode.
  • Les classes i els mètodes declarats implícitament permeten simplificar el codi, eliminant la necessitat d'especificar declaracions públiques o estàtiques per als mètodes principals.
  • S'inclou una tercera implementació de Scoped Values, una nova manera de compartir dades immutables entre subprocessos de manera més eficient, especialment en entorns on s'utilitzen una gran quantitat de subprocessos virtuals.
  • S'ha proposat una tercera vista prèvia de l'API de simultaneïtat estructurada a Java SE 23, que té com a objectiu simplificar el desenvolupament d'aplicacions multiprocés. Aquesta API permet gestionar diverses tasques executant-se en diferents subprocessos de manera més controlada i coherent, tractant-les com si fossin un únic bloc de codi.

Finalment si estàs interessat a poder conèixer més sobre això, pots consultar els detalls al següent enllaç.

Descarregar Java SE 23

Per als interessats en instal·lar la nova versió de Java SE 23, han de saber que les compilacions (JDK, JRE i Server JRE) ja estan llestes per Linux, Windows i macOS.