Versión de Java SE 19

Despois de seis meses de desenvolvemento, Oracle lanzou a plataforma Java SE 19 (Java Platform, Standard Edition 19), que utiliza o proxecto de código aberto OpenJDK como implementación de referencia. Coa excepción da eliminación dalgunhas funcións obsoletas, Java SE 19 mantén a compatibilidade con versións anteriores da plataforma Java; a maioría dos proxectos Java escritos anteriormente aínda funcionarán sen modificación cando se executen coa nova versión. As compilacións instalables de Java SE 19 (JDK, JRE e Server JRE) están preparadas para Linux (x86_64, AArch64), Windows (x86_64) e macOS (x86_64, AArch64). Desenvolvida polo proxecto OpenJDK, a implementación de referencia de Java 19 é totalmente de código aberto baixo a licenza GPLv2 con excepcións GNU ClassPath para permitir ligazóns dinámicas a produtos comerciais.

Java SE 19 clasifícase como versión de soporte regular, con actualizacións que se publicarán antes da próxima versión. A rama de Soporte a longo prazo (LTS) debería ser Java SE 17, que recibirá actualizacións ata 2029. Recordemos que a partir do lanzamento de Java 10, o proxecto pasou a un novo proceso de desenvolvemento, o que implica un ciclo máis curto para a formación de novos lanzamentos. Agora estase desenvolvendo novas funcionalidades nunha rama mestra en constante actualización, que inclúe cambios xa completados e da que se ramifican cada seis meses para estabilizar as novas versións.

As novas funcións de Java 19 inclúen:

  • Propúxose soporte preliminar para patróns de rexistro, estendendo a capacidade de coincidencia de patróns de Java 16 para analizar os valores de clases de rexistro de tipo. Por exemplo: gravar Punto(int x, int y) {} void printSum(Obxecto o) { if (o instancia de Punto(int x, int y)) { System.out.println(x+y); } }
  • As compilacións de Linux ofrecen soporte para a arquitectura RISC-V.
  • Engadido soporte preliminar para a API FFM (Foreign Function & Memory), que permite organizar a interacción dos programas Java con código e datos externos mediante a chamada de funcións desde bibliotecas externas e o acceso á memoria fóra da JVM.
  • Engadiuse compatibilidade con fíos virtuais, que son fíos lixeiros que simplifican moito a escritura e o mantemento de aplicacións multi-fíos de alto rendemento.
  • Proponse a cuarta implementación preliminar da API Vector, que proporciona funcións para cálculos vectoriais que se realizan utilizando as instrucións vectoriais dos procesadores x86_64 e AArch64 e que permiten aplicar operacións simultáneamente a varios valores á vez (SIMD). A diferenza das capacidades proporcionadas no compilador HotSpot JIT para a autovectorización de operacións escalares, a nova API permite controlar explícitamente a vectorización para o procesamento de datos paralelo.
  • Engadiuse unha terceira implementación experimental de coincidencia de patróns en expresións de conmutación, que permite utilizar modelos flexibles en etiquetas de casos que cobren unha serie de valores á vez, para o que se utilizaran previamente cadeas engorrosas de instrucións if...else. Obxecto o = 123L; String formatted = switch (o) { case Integer i -> String.format("int %d", i); case Long l -> String.format("long %d", l); case Double d -> String.format("double %f", d); case String s -> String.format("Cadea %s", s); predeterminado -> o.toString(); };
  • Engadiuse unha API de paralelismo estruturado experimental que facilita o desenvolvemento de aplicacións multiproceso ao tratar varias tarefas que se executan en fíos diferentes como unha única unidade.

Fonte: opennet.ru

Engadir un comentario