49

Java 9: Conoce la nueva actualización que trae Java de Oracle

26071Puntos

hace 4 años

Curso Básico de Java SE 2018
Curso Básico de Java SE 2018

Curso Básico de Java SE 2018

Java es un lenguaje de programación con el que puedes desarrollar software multiplataforma gracias a la JVM (Máquina Virtual de Java). Aprende las características fundamentales del lenguaje y desarrolla tus propios proyectos. Serás capaz de aplicar desde conceptos básicos, pasando por sus características orientadas a objetos y otros conceptos avanzados como herencia y polimorfismo.

Desde hace unos años no teníamos una actualización tan fuerte e importante para la comunidad de Java.

En septiembre del año pasado se lanzó la nueva versión Java 9, que llega casi 4 años después de la versión anterior. Esta versión trae consigo notables mejoras en rendimiento, seguridad y usabilidad del lenguaje.

De Java 8 se resaltó mucho el uso de las famosas expresiones lambdas que fueron un hit para escribir menos código al implementar los métodos funcionales de una interfaz. Además de la adquisición de Anotaciones. Ahora con el JDK 9 se añadieron bastantes más cosas interesantes que a continuación te mencionaré las que llamaron más mi atención:

1. JShell

Es una herramienta interactiva donde puedes ir probando segmentos de código en vez de realizar todo el proceso de creación de un programa en Java. Escribir, compilar y correr.

Para arracarlo necesitas tener el JDK 9 previamente instalado (en Curso Básico de Java SE te enseñados), para después desde la terminal colocar el comando jshell

2. Collections, Factory Methods

Un nuevo feature que se agregó en esta versión es la capacidad de crear colecciones inmutables de una forma mucho más simple con el método of().

List<String> androids = List.of("Kitkat", "Lollipop", "Marshmallow");
Set<String> names = Set.of("Ann", "anncode", "Anahi Salgado");
Map<Integer, String> twittersMap = Map.of(1, "@anncode", 2, "@platzi", 3, "@platziteam");

Es importante decir que la naturaleza de la colección Map es a partir de Key, Value por lo tanto los valores vendrán en pares donde el primero siempre será el Key y el segundo el Value.

Además dado que serán inmutables esto significará que no podemos agregar ni eliminar ningún dato de la colección, en caso de intentarlo nos arrojará la excepción UnsupportedOperationException. Ningún dato tampoco podrá ser nulo.

3. Mejora en la anotación @Deprecated

Esta anotación nos sirve para enterarnos si una clase o un método está ya descontinuado o deprecated, en una versión de Java específica, pero la verdad era muy complicado saber desde qué versión se había hecho ese ajuste. Ahora tenemos una nueva sintáxis para conocer estos datos mucho más rápido.

@Deprecated (forRemoval=true , since="9")

forRemoval nos dice que el elemento será removido permanentemente.
since nos indica la versión de Java en la que se marcó.

4. Try with Resource mejorado

Particularmente este try me gusta bastante y fue introducido desde la versión 7 se utiliza mucho para manejar recursos, como streams de datos, conecciones etc. y lo que hace es que de forma automática cierra cualquier flujo en cuestión. Este tenía un inconveniente y es que se tenía que declarar una variable adicional declarada dentro del try, esta era la sintáxis.

BufferedReader reader = newBufferedReader(new InputStreamReader(System.in));

try(BufferedReader r1 = reader) {
	//sentencias

} catch(Exception e) {
	//sentencias

}

Aquí se ve la variable r1 que francamente estaría de más, ahora podemos ponerlo así:

BufferedReader reader = newBufferedReader(new InputStreamReader(System.in));

try(reader) {
	//sentencias

} catch(Exception e) {
	//sentencias

}

5. Modularización

Este cambio es del que más se ha hablado pues hace mucho más ligeros y portables a nuestros programas. Cuando quieres correr cualquier aplicación desarrollada con Java necesitabas tener la instalación completa del JRE. Para un HolaMundo se estimaban unos 54MB, ahora con la modularización podemos hacer que una aplicación puede ser ejecutada en una versión reducida del JRE (Java Runtime Enviroment), es decir, crear Runtimes específicos para nuestros programas ahorrando muchos recursos.

Los módulos permiten definir a cada programa los paquetes de clases que exporta, así como se maneja en la Arquitectura de Microservicios. Node.js es un claro ejemplo de ello.

Mira los siguientes gráficos:

Imagen 1.png

Aquí se ve cómo anteriormente era necesario tener todas las API´s para que nuestra aplicación funcionara.

Ahora tenemos lo siguiente con modularidad:

Imagen 2.png

Por supuesto esto no es todo lo que se lanzó en Java 9 mira la siguiente tabla donde se especifica por qué es tan importante esta versión.

tabla-novedades-java-9.jpg

Si quieres saber mucho más sobre Java no te pierdas nuestro Curso Básico de Java SE para aprender las bases y entender más sobre todos estos temas.

Te veo allá.

Curso Básico de Java SE 2018
Curso Básico de Java SE 2018

Curso Básico de Java SE 2018

Java es un lenguaje de programación con el que puedes desarrollar software multiplataforma gracias a la JVM (Máquina Virtual de Java). Aprende las características fundamentales del lenguaje y desarrolla tus propios proyectos. Serás capaz de aplicar desde conceptos básicos, pasando por sus características orientadas a objetos y otros conceptos avanzados como herencia y polimorfismo.
Ann
Ann
anncode

26071Puntos

hace 4 años

Todas sus entradas
Escribe tu comentario
+ 2