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.
Nuevo engine Javascript
Este nuevo motor ofrece mayor rendimiento que el actual Rhino.
Ver http://parleys.com/play/51681471e4b05b6ad71fa70f/chapter29/about






Deja un comentario