0% encontró este documento útil (0 votos)
13 vistas3 páginas

Características Clave de Java 8

Java 8, lanzado en marzo de 2014, introdujo características clave como expresiones lambda, Streams API y una nueva API de fecha y hora, modernizando el lenguaje y mejorando la eficiencia del desarrollo. También se incorporaron interfaces funcionales, métodos predeterminados y estáticos en interfaces, y mejoras en la concurrencia, además de eliminar el espacio de generación permanente (PermGen). Estas innovaciones facilitan la programación funcional y optimizan la gestión de memoria.

Cargado por

facucok
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
13 vistas3 páginas

Características Clave de Java 8

Java 8, lanzado en marzo de 2014, introdujo características clave como expresiones lambda, Streams API y una nueva API de fecha y hora, modernizando el lenguaje y mejorando la eficiencia del desarrollo. También se incorporaron interfaces funcionales, métodos predeterminados y estáticos en interfaces, y mejoras en la concurrencia, además de eliminar el espacio de generación permanente (PermGen). Estas innovaciones facilitan la programación funcional y optimizan la gestión de memoria.

Cargado por

facucok
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Java 8, lanzado en marzo de 2014, introdujo varias características importantes que modernizaron el

lenguaje y la plataforma Java, mejorando la eficiencia, la funcionalidad y la programación funcional. A


continuación se detallan las principales características de Java 8:

1. Expresiones Lambda
Las expresiones lambda permiten tratar funcionalmente el código, facilitando la escritura de funciones
anónimas y la programación funcional.

Ejemplo:

java Copiar código

// Sin lambda Runnable runnable = new Runnable() { @Override public void run() {
[Link]("Hello world"); } }; // Con lambda Runnable runnableLambda = () ->
[Link]("Hello world");

2. Streams API
La API de Streams introduce una nueva manera de procesar datos de manera declarativa. Permite
operaciones como filtrado, mapeo, y reducción en colecciones de datos.

Ejemplo:

java Copiar código

List<String> myList = [Link]("a1", "a2", "b1", "c2", "c1"); [Link]()


.filter(s -> [Link]("c")) .map(String::toUpperCase) .sorted()
.forEach([Link]::println);

3. Interfaz Funcional y @FunctionalInterface


Una interfaz funcional es una interfaz que contiene un solo método abstracto. Estas son ideales para
expresiones lambda y referencias a métodos.

Ejemplo:

java Copiar código

@FunctionalInterface public interface MyFunctionalInterface { void execute(); } // Uso


con lambda MyFunctionalInterface func = () -> [Link]("Executing");
[Link]();
4. Métodos Predeterminados y Estáticos en Interfaces
Las interfaces ahora pueden tener métodos con implementación (default methods) y métodos
estáticos.

Ejemplo:

java Copiar código

public interface MyInterface { default void defaultMethod() { [Link]("Default


method"); } static void staticMethod() { [Link]("Static method"); } } class
MyClass implements MyInterface {} public class Main { public static void main(String[]
args) { MyClass obj = new MyClass(); [Link](); // Llama al método por defecto
[Link](); // Llama al método estático } }

5. Nueva API de Fecha y Hora ([Link])


Java 8 introduce una nueva API de fecha y hora que es inmutable y más amigable para el
desarrollador, basada en la librería Joda-Time.

Ejemplo:

java Copiar código

LocalDate today = [Link](); LocalDate birthday = [Link](1990, [Link],


25); Period age = [Link](birthday, today); [Link]("Age: " +
[Link]());

6. Referencias a Métodos
Las referencias a métodos proporcionan una forma corta y clara de referirse a métodos y constructores
existentes.

Ejemplo:

java Copiar código

// Referencia a un método estático Function<String, Integer> parseInt =


Integer::parseInt; // Referencia a un método de instancia de un objeto particular String
str = "Hello"; Supplier<String> supplier = str::toUpperCase; // Referencia a un método de
instancia de un objeto arbitrario de un tipo particular Function<String, String>
toUpperCase = String::toUpperCase;
7. Opcional ([Link])
Optional es una clase contenedora que puede o no contener un valor no nulo. Se usa para evitar el
uso de null y evitar excepciones NullPointerException.

Ejemplo:

java Copiar código

Optional<String> optional = [Link]("Hello");


[Link]([Link]::println); // Imprime "Hello" String value =
[Link]("Default"); [Link](value); // Imprime "Hello"
Optional<String> emptyOptional = [Link](); String emptyValue =
[Link]("Default"); [Link](emptyValue); // Imprime "Default"

8. Mejoras en la Concurrencia
Java 8 introduce mejoras en la API de concurrencia, incluyendo la adición de la clase
CompletableFuture y mejoras en la clase ForkJoinPool.

Ejemplo:

java Copiar código

[Link](() -> "Hello") .thenApply(result -> result + " World")


.thenAccept([Link]::println);

9. PermGen eliminado
El espacio de generación permanente (PermGen) ha sido eliminado y reemplazado por el Metaspace, lo
que mejora la gestión de memoria de las clases cargadas dinámicamente.

Resumen
Java 8 marcó un hito importante en la evolución del lenguaje Java, introduciendo características
funcionales, mejorando la API existente y ofreciendo nuevas herramientas para facilitar el desarrollo y
mejorar la eficiencia del código. Las principales características incluyen expresiones lambda, Streams
API, interfaces funcionales, métodos predeterminados y estáticos en interfaces, una nueva API de fecha
y hora, referencias a métodos, Optional, mejoras en la concurrencia y la eliminación de PermGen.

También podría gustarte