Versió de Java SE 19

Després de sis mesos de desenvolupament, Oracle ha llançat la plataforma Java SE 19 (Java Platform, Standard Edition 19), que utilitza el projecte de codi obert OpenJDK com a implementació de referència. Amb l'excepció de l'eliminació d'algunes característiques obsoletes, Java SE 19 manté la compatibilitat amb versions anteriors de la plataforma Java; la majoria dels projectes Java escrits anteriorment encara funcionaran sense modificacions quan s'executen amb la nova versió. Les compilacions instal·lables de Java SE 19 (JDK, JRE i Server JRE) estan preparades per a Linux (x86_64, AArch64), Windows (x86_64) i macOS (x86_64, AArch64). Desenvolupat pel projecte OpenJDK, la implementació de referència de Java 19 és de codi obert totalment sota la llicència GPLv2 amb excepcions GNU ClassPath per permetre l'enllaç dinàmic a productes comercials.

Java SE 19 es classifica com a versió de suport habitual, amb actualitzacions que es publicaran abans de la propera versió. La branca de suport a llarg termini (LTS) hauria de ser Java SE 17, que rebrà actualitzacions fins al 2029. Recordem que a partir del llançament de Java 10, el projecte va passar a un nou procés de desenvolupament, que implica un cicle més curt per a la formació de nous llançaments. Ara s'està desenvolupant una nova funcionalitat en una branca mestra constantment actualitzada, que incorpora canvis ja finalitzats i de la qual es ramifiquen cada sis mesos per estabilitzar les noves versions.

Les noves característiques de Java 19 inclouen:

  • S'ha proposat un suport preliminar per als patrons de registre, ampliant la capacitat de concordança de patrons de Java 16 per analitzar els valors de les classes de tipus de registre. Per exemple: registre Point(int x, int y) {} void printSum(Object o) { if (o instanceof Point(int x, int y)) { System.out.println(x+y); } }
  • Les compilacions de Linux proporcionen suport per a l'arquitectura RISC-V.
  • S'ha afegit suport preliminar per a l'API FFM (Foreign Function & Memory), que permet organitzar la interacció dels programes Java amb codi i dades externs mitjançant la trucada de funcions des de biblioteques externes i l'accés a la memòria fora de la JVM.
  • S'ha afegit suport per a fils virtuals, que són fils lleugers que simplifiquen molt l'escriptura i el manteniment d'aplicacions multifils d'alt rendiment.
  • Es proposa la quarta implementació preliminar de l'API Vector, que proporciona funcions per a càlculs vectorials que es realitzen mitjançant les instruccions vectorials dels processadors x86_64 i AArch64 i permeten aplicar simultàniament operacions a diversos valors alhora (SIMD). A diferència de les capacitats que ofereix el compilador HotSpot JIT per a l'autovectorització d'operacions escalars, la nova API permet controlar explícitament la vectorització per al processament de dades paral·lel.
  • S'ha afegit una tercera implementació experimental de concordança de patrons en expressions de commutació, que permet utilitzar plantilles flexibles en etiquetes de cas que cobreixen una sèrie de valors alhora, per a les quals s'havien utilitzat anteriorment cadenes feixugues de declaracions if...else. Objecte o = 123L; String formatted = switch (o) { case Integer i -> String.format("int %d", i); case Long l -> String.format("long %d", l); case Doble d -> String.format("doble %f", d); case String s -> String.format("String %s", s); per defecte -> o.toString(); };
  • S'ha afegit una API de paral·lelisme estructurat experimental que facilita el desenvolupament d'aplicacions multifils tractant diverses tasques que s'executen en diferents fils com una sola unitat.

Font: opennet.ru

Afegeix comentari