Novedades y nuevas características de Java 21
Escrito por
el .
java
planeta-codigo
Enlace permanente
Comentarios
Java 21 como versión LTS es una versión especial. Los virtual threads junto con las sequenced collections y las nuevas posibilidades de pattern matching quizá son las novedades más destacadas de esta versión. Otras novedades interesantes en el futuro siguen en modo vista previa.
El mes de septiembre de 2023 se ha publicado Java 21, una versión relevante por dos motivos. Un motivo es que es una versión LTS que proporciona un soporte prolongado en el tiempo de actualizaciones de seguridad de 8 años y otro motivo es que incorpora la característica de virtual threads.
Además se incorporan otras características en vista previa o actualizaciones de características en vista previa de versiones anteriores. El modelo de desarrollo con calendario fijo sigue incorporando novedades en el lenguaje y la plataforma a un ritmo asombrosamente rápido comparado con la época de Java 5 a Java 8.
Todas las novedades de Java 21 se suman a las novedades desde Java 17 que fue la anterior versión LTS. Las versiones LTS son versiones especiales por su soporte de seguridad extendido lo que las hace deseables como hitos en los que migrar a una nueva versión.
Contenido del artículo
Introducción
Quizá la novedad de la plataforma más destacada son los virtual threads que permite pasar de crear miles de threads a millones de threads y sin necesidad de cambios en el lenguaje Java.
Otras novedades destacadas son las sequenced collections que proporcionan uniformidad en la nomenclatura de métodos en las diferentes clases de colecciones que por motivos históricos tenían diferencias,esto da uniformidad al trabajar con colecciones.
En el lenguaje también se incorporan novedades como los record patterns que permiten desestructurar los datos de los records, crear patrones en las expresiones switch y evitar casts.
En siguientes versiones la structured concurrency y los scoped values será otra novedad importante para simplificar la programación concurrente, con un estilo de programación imperativo pero con los beneficios de la concurrencia.
Otros cambios son menos relevantes para la mayoría de programadores como la Generational ZGC, Vector API en los contextos que lo usen.
Las novedades en vista previa están disponibles para aquellos que quieran usarlas y no les importe que haya que realizar cambios en el código se hay alguna modificación hasta la versión final.
Los siguientes artículos proporcionan una información detallada de las novedades y los enlaces a cada uno de los JEPs una información mucho más detallada.
- Características de Java 21
- Notas de publicación de Java 21
- Documentación de Java 21
- Documentación Javadoc de Java 21
- Blog Oracle: The Arrival of Java 21
- Java Magazine: Java 21 is here: Virtual threads, string templates, and more
Las novedades incluidas en esta versión son:
- 430: String Templates (Preview)
- 431: Sequenced Collections
- 439: Generational ZGC
- 440: Record Patterns
- 441: Pattern Matching for switch
- 442: Foreign Function & Memory API (Third Preview)
- 443: Unnamed Patterns and Variables (Preview)
- 444: Virtual Threads
- 445: Unnamed Classes and Instance Main Methods (Preview)
- 446: Scoped Values (Preview)
- 448: Vector API (Sixth Incubator)
- 449: Deprecate the Windows 32-bit x86 Port for Removal
- 451: Prepare to Disallow the Dynamic Loading of Agents
- 452: Key Encapsulation Mechanism API
- 453: Structured Concurrency (Preview)
Las novedades de las anteriores versiones desde la anterior versión LTS fueron las siguientes:
- Novedades de Java 20
- Novedades de Java 19
- Novedades de Java 18
- Novedades y nuevas características de Java 17
Este ha sido el calendario de publicaciones de cada versión de Java desde la inicial 1.0 hasta la versión 21, junto con las principales novedades de cada versión.
Vídeos y artículos
Los siguiente artículos y vídeos proporcionan información adicional y explican detalladamente con ejemplos las novedades de esta versión de Java.
- Java 21, the Next LTS Release, Delivers Virtual Threads, Record Patterns and Pattern Matching
- Java version history