Novedades de Java 12
Escrito por
el .
java
planeta-codigo
Enlace permanente
Comentarios
El 19 de marzo del 2019 se publicaba la versión Java 12 siguiendo el calendario de lanzar una nueva versión cada seis meses incorporando nuevas funcionalidades de forma incremental. La versión 12 no es una versión con soporte extendido y dejará de tener actualizaciones cuando se publique la siguiente versión. La primera versión LTS con la funcionalidad de módulos es la 11 y la recomendada para proyectos de larga duración o bajo mantenimiento, la siguiente LTS será la versión 17 que según lo planificado se publicará en septiembre de 2021 después de tres años.
Contenido del artículo
Introducción
Las características destacadas de Java 12 son la incorporación de forma experimental las expresiones switch y mejoras en el recolector de basura para mayor rendimiento.
- Características de Java 12
- Notas de publicación de Java 12
- Documentación de Java 12
- Documentación Javadoc de Java 12
Las mejoras incluídas en esta versión son:
- 189: Shenandoah: A Low-Pause-Time Garbage Collector (Experimental)
- 230: Microbenchmark Suite
- 325: Switch Expressions (Preview)
- 334: JVM Constants API
- 340: One AArch64 Port, Not Two
- 341: Default CDS Archives
- 344: Abortable Mixed Collections for G1
- 346: Promptly Return Unused Committed Memory from G1
Nuevas características
Teeing Collectors
Los stream proporcionan un flujo de elementos a procesar. En el caso de querer recolectar dos valores de ese flujo requiere usar un reduce que complica el código. Se ha añadido un nuevo colector Collectors.teeing() para enviar un elemento de un stream a dos streams, de forma similar a lo que hace el comando tee en Unix.
|
|
Formato de número compacto
Ahr se puede expresar un número de forma compacta con la clase CompactNumberFormat o el método NumberFormat.getCompactNumberInstance().
|
|
Recolector de basura Shenandoah
Una de la áreas que más atención reciben para mejorar el rendimiento de las aplicaciones es el recolector de basura. Shenandoah es uno nuevo que independiente del tamaño de la memoria, ya sea de 200 MiB o 200 GiB, el tiempo de las pausas es el mismo. También se han implementado mejoras en el recolector de basura G1 actual.
Nuevas características en vista previa
Expresiones switch
Las expresiones switch permiten quitar varias sentencias if else encadenadas. Cada rama de la sentencia switch devuelve un valor y no hace falta usar la sentencia break, se pueden utilizar varios casos para cada rama.
|
|
Otras características incorporadas y cambios
Algunos métodos han sido eliminados varios relacionados con el método finalize cuyo uso está desaconsejado desde hace mucho tiempo por no se una forma segura de liberar recursos. Algunos algoritmos de cifrado inseguros han sido deshabilitados. Se ha añadido soporte para Unicode 11.0 con nuevos caracteres, bloques y scripts.