Novedades relevantes Java 8

Con el anuncio de Oracle de que Java 8 saldrá el 18 de marzo incluso aunque esta versión pudiese tener bugs menores parece un buen momento para recordar las novedades de Java 8:

Las características que incluye el OpenJDK 8 pueden verse aquí: http://openjdk.java.net/projects/jdk8/features

De estas me parecen especialmente relevantes:

· Eliminación del espacio PermGen

· Compact Profiles (Small VM)

· Expresiones Lambda

· Métodos predeterminados en interfaces

· API Stream

· Nuevo API para Fechas (por fin)

· Nuevo engine Javascript

Veamos por encima estas nuevas características:

Eliminación del espacio PermGen (nunca más el java.lang.OutOfMemoryError: PermGen error)

Aunque sea interno es un cambio fundamental en la JVM (desaparecen los parámetros PermSize y MaxPermSize).

Este espacio se reemplaza por un espacio nuevo llamado Metaspace. Este espacio cambia de tamaño dinámicamente en función de la demanda de la aplicación y también puede limitarse si queremos.

Ver Java 8: From PermGen to Metaspace

Compact Profiles (Small VM)

El objetivo es disponer de VMs menorespara dispositivos pequeños y embebidos con la que se consiguen:

· Una JVM más pequeña requiere menos esfuerzo de computación y está optimizada para rendimiento y tiempo de arranque

· Eliminación de código que no se usa es más seguro

· Descarga del bundle más rápida y menos consumo de disco

Para esto se crean (de momento) 3 profiles:

Ver feature OpenJDK: http://openjdk.java.net/jeps/161

Expresiones Lambda

Poco queda que no se haya dicho de las expresiones Lambda.

Un par de ejemplos:

Y este para métodos estáticos y no estáticos:

Métodos predeterminados en interfaces

Las interfaces ahora podrán definir métodos estáticos.:

https://unpocodejava.wordpress.com/2013/03/26/default-methods-en-java-8/

API Stream

Este API provee utilidades para para permitir operaciones "estilo programación funcional" sobre flujos de valores.

Los Streams pueden ser secuenciales o paralelos. Las acciones en un stream secuencial ocurren de forma secuencial en un único thread, mientras que en un stream paralelo pueden ocurrir todas a la vez en múltiples threads.

Ver http://javadocs.techempower.com/jdk18/api/java/util/stream/package-summary.html

Nuevo API para Fechas (por fin)

El API proviene de JodaTime y sus principales clases son:

· Instant es un timestamp numérico

· LocalDate sirve para almacenar una fecha sin hora.

· LocalTime sirve para almacenar una hora sin fecha.

· LocalDateTime sirve para almacenar una fecha con hora.

· ZonedDateTime almacena hora y fecha con información de uso horario.

https://unpocodejava.wordpress.com/2012/09/25/por-fin-nueva-api-data-y-time-y-solo-han-hecho-falta-8-versiones-de-java/

Nuevo engine Javascript

Este nuevo motor ofrece mayor rendimiento que el actual Rhino.

Ver http://parleys.com/play/51681471e4b05b6ad71fa70f/chapter29/about

Leer más

Deja un comentario