Última Actualización abril 14th, 2021 5:37 PM
Jun 08, 2015 NGuerrero java, java web Comentarios desactivados en Lo nuevo en Java 8
JAVA 8
Es la versión más reciente de Java que incluye nuevas características, mejoras y correcciones de bugs para mejorar la eficacia en el desarrollo y la ejecución de programas Java. Incorporando varias novedades siguiendo la tendencia de otros lenguajes como la de lambdas o closures o una demandada nueva API para el manejo de fechas entre otras muchas características más. La lista completa de novedades es bastante amplia, a continuación se resumirá lo más destacable:
Los streams no son un nuevo tipo de colección, son una nueva forma de recorrer las colecciones distinta a los Iterator. La ventaja de los streams es que pueden procesarse de forma serializada o paralela y proporcionan un estilo de operaciones más funcionales. Un flujo consiste una fuente (una colección), varias operaciones intermedias (de filtrado o transformación) y una operación final que produce un resultado (suma, cuenta…). Los streams son lazy de modo que las operaciones solo se realizan cuando se llama a la operación final, también son eficientes no necesitando en algunos casos procesar todos los elementos del stream para devolver el resultado final.
Tradicionalmente en la API de colecciones la iteración sobre los elementos debíamos proporcionarla de forma externa. Con Java 8 podemos expresarla de la siguiente forma.
int alturaMedia = personas.stream()
.mapToInt((Persona p) –> { return p.getAltura(); })
.average();
|
Esta es una de las principales novedades y que más se estaba echando de menos en Java de otros lenguajes como Groovy o Python. Las expresiones lambda son funciones que no está asociadas a un determinado nombre y que pueden pasarse como argumento a otras funciones. Tienen el siguiente aspecto:
1 |
(Persona persona) –> { return persona.getAltura(); }
|
Todo el código desarrollado previamente a Java 8 no hace uso de las lambdas, pero con las referencias a métodos podemos usar esos métodos ya implementados como si se tratasen de funciones lambdas. Hay diferentes formas de hacer referencias a métodos:
// Método estático
Persona::compareAltura
// Método de una instancia concreta
persona::getAltura
// Método de instancia de una instancia arbitraria de un tipo
Persona::getAltura
// Constructor
Persona::new
|
Powered by Facebook Comments
Abr 14, 2021 0
Abr 13, 2021 0
Abr 12, 2021 0
Abr 10, 2021 0
Abr 10, 2021 0
Abr 08, 2021 0
Mar 29, 2021 0
Mar 25, 2021 0
Abr 14, 2021 0
Abr 10, 2021 0
Abr 08, 2021 0
Abr 06, 2021 0
Abr 05, 2021 0