Do you want to switch to Platzi in English?
44
Java 9: Conoce la nueva actualización que trae Java de Oracle

9520Puntos

hace 5 meses

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

Curso Básico de Java SE

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
Curso Básico de Java SE

Curso Básico de Java SE

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

9520Puntos

hace 5 meses

Todas sus entradas
Escribe tu comentario
+ 2
Ordenar por:
3
20609Puntos

Muchas gracias Ann, he estado esperando un curso al respecto desde que salió Java 9 😄

2
38Puntos
<System.out.println("Genial! :D")>
2
5723Puntos

Entonces ¿la actualización del curso de Java Básico se basará en Java 9?

No le encuentro mucho sentido a las colecciones inmutables, pero bueno, alguna utilidad deben tener 🙃

1
214Puntos
5 meses

Y creéme que las tiene.
Cuando trabajas con programación concurrente, la inmutabilidad es algo muy preciado.
Aquí te dejo un link (un tanto desactualizado) pero igual funciona.
Solo que en vez de usar una librería externa para conseguir inmutabilidad, con java 9 podrás hacerlo sin incluir otra librería 😃

0
214Puntos
5 meses

PD: No sé lo del curso básico :v

1
156Puntos
5 meses

Yo creo que sin tiene sentido amigo, yo hace 8 años empecé a programar en java 6 y hace unos años en java 8, y si para mi fue extraño la manera en que se fue facilitando (hasta cierto punto) las sintaxis en java. Si tiene sentido.

1
9967Puntos

Que bonito. Gracias por las novedades en Java Anahí.

1
2036Puntos

Genial muy bien explicado … Vamos a ver cómo estará el nuevo curso …

0
12Puntos

he visto que el instalador esta basado para maquinas de 64bits.

0
156Puntos

Muy interesante tu articulo, recientemente hace algunos meses programe con java 8, y para lo que programaba en mis residencias era fácil pero un poco extraño, ya que cuando iniciaba la ingeniería en sistemas computacionales, programaba java y android con java 6, y fue en 2010-2013, ahora ha habido un gran cambio, te agradezco tu opinión sobre esta nueva versión de java.

0
9520Puntos
4 meses

Claro no hay de qué toma nuestros cursos de Java en Platzi aprovecha los conenidos 😃

0
3593Puntos

Buena introducción a java 9 @Anncode. El jshell es interesante para quienes utilizamos Python:-).

0
9520Puntos
5 meses

Sí era algo que le faltaba a Java implementar, sobre todo para los que inician con el lenguaje 😃

0
10Puntos

Interesante información de lo que se viene con java 9.
Muchas gracias

0
804Puntos

Si quieren conoces muchas de las nuevas funcionalidades y mejoras incorporadas en el JDK 9, no relacionadas con la modularizaci’on, les recomiendo este video.