SlideShare ist ein Scribd-Unternehmen logo
1 von 43
Downloaden Sie, um offline zu lesen
Primeros pasos ....
Eudris Cabrera
@eudriscabrera
18 Noviembre 2017, PUCMM, Santiago de los caballeros, R. D.
Eudris Cabrera
Graduado de Ingeniería Telemática en la PUCMM.
Entusiasta de la tecnología y el software libre,
desarrollador Java, instructor ocasional (Java / Linux),
aficionado del béisbol/sóftbol y los bailes latinos.
En el tiempo libre, escribe artículos, realiza charlas,
participa en eventos tecnológicos y ayuda en la revisión
de documentación técnica en el mundo Java y el código
abierto.
AGENDA
● Sistema Modular - Proyecto
Jigsaw
● Instalación de JDK 9
● Explorando Java 9 con Eclipse
● Cambios en el Lenguaje
● Mejoras a varios API
● Nuevas APIs y funcionalidades
● Conclusiones
Sistema Modular :
Proyecto Jigsaw
Es la principal novedad en Java 9.
La idea de un sistema modular es hacer el jdk
más ligero para dispositivos pequeños.
El sistema de módulos proporcionará a la
aplicación la capacidad de utilizar sólo los
módulos del jdk que sean necesarios.
Las aplicaciones ya no necesitarán el jdk completo.
El sistema de módulos encapsula las clases
públicas dentro de un módulo. Así que clase
definida pública no estaría disponible para el
mundo entero hasta que un módulo lo defina
explícitamente.
Sistema Modular - Proyecto Jigsaw
Los módulos van a ser descritos en un archivo llamado module-info.java ubicado
en la parte superior de la jerarquía de código java.
El archivo module-info provee:
1. Nombre del módulo.
2. Lista de dependencias de módulos necesarias para la correcta compilación y
ejecución.
3. Información sobre paquetes exportados por este módulo.
4. Lista de servicios que proporciona el módulo en tiempo de ejecución.
Sistema Modular - Proyecto Jigsaw
Sistema Modular - Proyecto Jigsaw
com.example.samplemodule : es el nombre del módulo.
requires : Indica que son dependencia del módulo
exports : Todas las clases públicas en estos paquetes serán accesibles a otros módulos
que dependen de él.
uses : Para usar datos de otros módulos.
provides : Proporciona configuración al servicio de otro módulo
Instalación de Java SE 9
❏ Descargar y descomprimir
>
http://www.oracle.com/technetwork/java/javase/downloads/jdk9-downlo
ads-3848520.html
❏ Asegúrese de que la variable de entorno JAVA_HOME
está en apuntando al directorio del JDK
❏ Instalar un IDE con soporte para Java 9
Instalación de Java SE 9
❏ Descargar y descomprimir
> http://www.oracle.com/technetwork/java/javase/downloads/jdk9-downloads-3848520.html
❏ Asegúrese de que la variable de entorno JAVA_HOME
está en apuntando al directorio del JDK
❏ Instalar un IDE con soporte para Java 9
IDE que soportan Java SE 9
NetBens 9 (No hay
fecha exacta para el
lanzamiento)
http://wiki.netbeans.org
/NetBeans_9#Schedule
Eclipse IDE, Oxygen
Edition
https://www.eclipse.
org/downloads/
IntelliJ IDEA (versión 2017.2
del 18 de Julio o superior )
https://www.jetbrains.co
m/idea/download/
Explorando Java 9 con Eclipse
Demo Vamos a explorar varios ejemplos.
https://github.com/ecabrerar/java9-labs/tree/mas
ter/jigsaw
Explorando Java 9 desde la línea de
comandos
Sistema Modular - Proyecto Jigsaw
$ javac -d mods/com.eudriscabrera.examples.greetings
com.eudriscabrera.examples.greetings/com/eudriscabrera/examples/greetings/Main.java
com.eudriscabrera.examples.greetings/module-info.java
Sistema Modular - Proyecto Jigsaw
Crear un jar a partir de módulo
$ jar -c -f com.eudriscabrera.examples.greetings.jar -C com.eudriscabrera.examples.greetings .
Cambios en el Lenguaje
Métodos Privados en Interfaces
Además de los métodos default "predeterminados", ahora en
Java 9 puede declarar métodos privados.
La idea es poder ocultar aquellas implementaciones de métodos
que no tienen que ser expuesta a las clases que implementen la
interfaz.
Los métodos por defecto en Java 8 fue una funcionalidad
bien recibida, pero había un detalle desafortunado: reutilizar
el código entre los métodos predeterminados era
desagradable.
Métodos Privados en Interfaces
Try-With-Resources
Try-With-Resources en variable Efectivamente Final
Mejoras a varios APIs
Mejoras al API Stream
Hay varios métodos nuevos agregados a la interfaz de Stream:
dropWhile, takeWhile, entre otros.
Método factory para Collection
Temas para investigar ● Multi-release JARs
● Imagenes con multiples
resoluciones
● Process API
● Reactive Streams
Explorando a JShell
JShell - Java 9 REPL
Un REPL (Read-Eval-Print Loop) es una herramienta de línea de
comandos para la ejecución de sentencias de forma rápida.
Demo
Ejemplos básicos en JShell
con fines demostrativos
Puntos a tomar en cuenta antes de
migrar a Java 9
Ciclo de lanzamiento Java 9 representa el final de la era de
las versiones Java basadas en funciones.
En el pasado, se seleccionaron algunas
características importantes, y cada vez
que estaban listas, se realizó una nueva
versión principal de Java.
En la práctica, esto condujo a al menos tres años entre lanzamientos
importantes. Eso no es aceptable en estos tiempos, por lo que Oracle
y el proyecto OpenJDK están cambiando a versiones basadas en el
tiempo.
Ahora, cada 6 meses se lanzará una nueva versión de Java.
Contendrá todas las características que estén listas para ese
momento.
Entre estos lanzamientos de 6 meses, las actualizaciones con
soluciones críticas aún se pueden lanzar cuando sea necesario.
Calendario de Lanzamiento Este nuevo calendario de
lanzamientos tiene varias
implicaciones.
En primer lugar, las versiones de Java se vuelven
más frecuentes y predecibles. El plan actual es
lanzar Java en marzo y septiembre de cada año.
El nuevo esquema de número de versión
propuesto para incrementar la versión principal
cada seis meses, lo que significa que la próxima
versión en marzo de 2018 será Java 10.
Sin embargo, el esquema de versión aún está en
discusión.
Versiones con soporte a largo plazo (LTS)
La actualización de su versión de Java cada 6 meses
no es una perspectiva tentadora para muchas
organizaciones. Por lo tanto, habrá versiones de
soporte a largo plazo (LTS) designadas cada tres años.
La primera versión de LTS será el lanzamiento de
septiembre de 2018.
Eso también significa que Java 9 no estará disponible
para las versiones compatibles a largo plazo.
Conclusiones
Desde una perspectiva de operaciones, esperar al
lanzamiento de la primera versión soporte a largo
plazo (LTS) es una estrategia atractiva. Desde una
perspectiva de desarrollo, hay demasiados cambios
importantes que surgen del JDK modularizado para
posponer la adopción.
La recomendación de los expertos es comenzar a
desarrollar su aplicación sobre Java 9 lo antes
posible. No tiene que usar módulos para su
aplicación cuando se migre a Java 9; Los módulos
son completamente opcionales.
Una opción es comenzar a usar JDK 9 para
desarrollar sus aplicaciones, pero apuntando a JDK 8
como tiempo de ejecución. Un nuevo indicador (flag)
'--release' para este escenario.
¿Preguntas?
¡Gracias por
Acompañarnos!
Referencias
Recursos para Java 9
Enlaces:
https://www.sitepoint.com/ultimate-guide-to-java-9/
https://blogs.oracle.com/darcy/more-concise-try-with-resources-statements-in-jdk-9
https://blogs.oracle.com/java/features-in-java-8-and-9
https://www.pluralsight.com/blog/software-development/java-9-new-features
https://aboullaite.me/wrapping-up-java-9-new-features/?imm_mid=0f16b7&cmp=em-prog-na-na-newsltr_20170506
https://www.pluralsight.com/blog/software-development/java-9-impact
http://www.baeldung.com/java-9-stream-api
https://github.com/ecabrerar/java9-labs
Código fuente de los ejemplos en GitHub
Asuntos Legales
Todas las marcas registradas, así como todos los
logotipos, imágenes, fotografías, audio y vídeos
mostrados en esta presentación son propiedad de
sus respectivos propietarios y/o representantes.
Su utilización es solamente para fines ilustrativos.
@eudriscabrera
@eudris
@ecabrerar
@eudriscabrera
Eudris Cabrera Rodríguez
Ingeniero Telemático
Desarrollador de Software / Consultor Informático
eudris@gmail.com
https://www.linkedin.com/in/eudriscabrera
http://www.slideshare.net/eudris
https://twitter.com/eudriscabrera
https://github.com/ecabrerar

Weitere ähnliche Inhalte

Was ist angesagt?

Gestión del software con Maven y Jenkins
Gestión del software con Maven y JenkinsGestión del software con Maven y Jenkins
Gestión del software con Maven y JenkinsBEEVA_es
 
Técnicas avanzadas de control de versiones
Técnicas avanzadas de control de versionesTécnicas avanzadas de control de versiones
Técnicas avanzadas de control de versionesAngel Armenta
 
React Hooks ¿Por donde empezar?
React Hooks ¿Por donde empezar?React Hooks ¿Por donde empezar?
React Hooks ¿Por donde empezar?Adrian Diaz Cervera
 
Proyect Evenge. Event manager
Proyect Evenge. Event managerProyect Evenge. Event manager
Proyect Evenge. Event managerIvan Ortega
 
Desarrollo.de.aplicaciones.con.java
Desarrollo.de.aplicaciones.con.javaDesarrollo.de.aplicaciones.con.java
Desarrollo.de.aplicaciones.con.javaSantiago Sora
 
Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020Micael Gallego
 
Jobsket Spring 2GX Madrid
Jobsket Spring 2GX MadridJobsket Spring 2GX Madrid
Jobsket Spring 2GX MadridJobsket
 
Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)
Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)
Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)Jose Juan R. Zuñiga
 
Desarrollo con Java y metodologías agiles
Desarrollo con Java y metodologías agilesDesarrollo con Java y metodologías agiles
Desarrollo con Java y metodologías agilesJobsket
 
Java mission control para monitoreo, administración y profilig de aplicacione...
Java mission control para monitoreo, administración y profilig de aplicacione...Java mission control para monitoreo, administración y profilig de aplicacione...
Java mission control para monitoreo, administración y profilig de aplicacione...César Hernández
 
Miguel Balparda - Haciendo su vida más fácil con Magento 2 y la terminal
Miguel Balparda - Haciendo su vida más fácil con Magento 2 y la terminalMiguel Balparda - Haciendo su vida más fácil con Magento 2 y la terminal
Miguel Balparda - Haciendo su vida más fácil con Magento 2 y la terminalMage Titans ES
 
22 07-13 eclipse grupo 6
22 07-13 eclipse grupo 622 07-13 eclipse grupo 6
22 07-13 eclipse grupo 6Maga Lasic
 

Was ist angesagt? (20)

Creación de Plataformas
Creación de PlataformasCreación de Plataformas
Creación de Plataformas
 
Gestión del software con Maven y Jenkins
Gestión del software con Maven y JenkinsGestión del software con Maven y Jenkins
Gestión del software con Maven y Jenkins
 
Técnicas avanzadas de control de versiones
Técnicas avanzadas de control de versionesTécnicas avanzadas de control de versiones
Técnicas avanzadas de control de versiones
 
React Hooks ¿Por donde empezar?
React Hooks ¿Por donde empezar?React Hooks ¿Por donde empezar?
React Hooks ¿Por donde empezar?
 
Proyect Evenge. Event manager
Proyect Evenge. Event managerProyect Evenge. Event manager
Proyect Evenge. Event manager
 
Desarrollo.de.aplicaciones.con.java
Desarrollo.de.aplicaciones.con.javaDesarrollo.de.aplicaciones.con.java
Desarrollo.de.aplicaciones.con.java
 
Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020
 
Jobsket Spring 2GX Madrid
Jobsket Spring 2GX MadridJobsket Spring 2GX Madrid
Jobsket Spring 2GX Madrid
 
Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)
Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)
Desarrollo en 4G(Groovy, Grails, Git, GoogleAppEngine)
 
Taller Grails
Taller GrailsTaller Grails
Taller Grails
 
Desarrollo con Java y metodologías agiles
Desarrollo con Java y metodologías agilesDesarrollo con Java y metodologías agiles
Desarrollo con Java y metodologías agiles
 
Jenkins, no me rompas los builds!
Jenkins, no me rompas los builds!Jenkins, no me rompas los builds!
Jenkins, no me rompas los builds!
 
Java mission control para monitoreo, administración y profilig de aplicacione...
Java mission control para monitoreo, administración y profilig de aplicacione...Java mission control para monitoreo, administración y profilig de aplicacione...
Java mission control para monitoreo, administración y profilig de aplicacione...
 
DevOps: una breve introducción
DevOps: una breve introducciónDevOps: una breve introducción
DevOps: una breve introducción
 
Docker images
Docker imagesDocker images
Docker images
 
Miguel Balparda - Haciendo su vida más fácil con Magento 2 y la terminal
Miguel Balparda - Haciendo su vida más fácil con Magento 2 y la terminalMiguel Balparda - Haciendo su vida más fácil con Magento 2 y la terminal
Miguel Balparda - Haciendo su vida más fácil con Magento 2 y la terminal
 
Preparedstatement
PreparedstatementPreparedstatement
Preparedstatement
 
Clase02 de sistemas
Clase02 de sistemasClase02 de sistemas
Clase02 de sistemas
 
Java
JavaJava
Java
 
22 07-13 eclipse grupo 6
22 07-13 eclipse grupo 622 07-13 eclipse grupo 6
22 07-13 eclipse grupo 6
 

Ähnlich wie Primeros pasos Java 9

Ähnlich wie Primeros pasos Java 9 (20)

Java 9, 10, 11 ,12, 13 and more
Java 9, 10, 11 ,12, 13 and moreJava 9, 10, 11 ,12, 13 and more
Java 9, 10, 11 ,12, 13 and more
 
Pres1
Pres1Pres1
Pres1
 
PRIMERA PRESENTACION JAVA
PRIMERA PRESENTACION JAVAPRIMERA PRESENTACION JAVA
PRIMERA PRESENTACION JAVA
 
Artículo 2 sobre la plataforma ECLIPSE
Artículo 2 sobre la plataforma ECLIPSEArtículo 2 sobre la plataforma ECLIPSE
Artículo 2 sobre la plataforma ECLIPSE
 
Seminario Spring Roo. Monitorización con Spring Insight
Seminario Spring Roo. Monitorización con Spring InsightSeminario Spring Roo. Monitorización con Spring Insight
Seminario Spring Roo. Monitorización con Spring Insight
 
Java
JavaJava
Java
 
JAVA
JAVAJAVA
JAVA
 
[ES] Introdución a la plataforma java
[ES] Introdución a la plataforma java [ES] Introdución a la plataforma java
[ES] Introdución a la plataforma java
 
Java
JavaJava
Java
 
5 lenguaje
5 lenguaje5 lenguaje
5 lenguaje
 
Intro progmacosx[1]
Intro progmacosx[1]Intro progmacosx[1]
Intro progmacosx[1]
 
Modulo 1
Modulo 1Modulo 1
Modulo 1
 
5 lenguaje (caso de uso)
5 lenguaje  (caso de uso)5 lenguaje  (caso de uso)
5 lenguaje (caso de uso)
 
Conociendo las tecnologías de TypeSafe (Primer meetup Scala Perú Nov 2015)
Conociendo las tecnologías de TypeSafe (Primer meetup Scala Perú Nov 2015)Conociendo las tecnologías de TypeSafe (Primer meetup Scala Perú Nov 2015)
Conociendo las tecnologías de TypeSafe (Primer meetup Scala Perú Nov 2015)
 
[ES] Primeros pasos con la Plataforma Java
[ES] Primeros pasos con la Plataforma Java[ES] Primeros pasos con la Plataforma Java
[ES] Primeros pasos con la Plataforma Java
 
Java
JavaJava
Java
 
Introducción a la algoritmia
Introducción a la algoritmiaIntroducción a la algoritmia
Introducción a la algoritmia
 
Introducción a la algoritmia
Introducción a la algoritmiaIntroducción a la algoritmia
Introducción a la algoritmia
 
Scala
ScalaScala
Scala
 
Evaluación de ZK
Evaluación de ZKEvaluación de ZK
Evaluación de ZK
 

Kürzlich hochgeladen

La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 

Kürzlich hochgeladen (16)

La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 

Primeros pasos Java 9

  • 1. Primeros pasos .... Eudris Cabrera @eudriscabrera 18 Noviembre 2017, PUCMM, Santiago de los caballeros, R. D.
  • 2. Eudris Cabrera Graduado de Ingeniería Telemática en la PUCMM. Entusiasta de la tecnología y el software libre, desarrollador Java, instructor ocasional (Java / Linux), aficionado del béisbol/sóftbol y los bailes latinos. En el tiempo libre, escribe artículos, realiza charlas, participa en eventos tecnológicos y ayuda en la revisión de documentación técnica en el mundo Java y el código abierto.
  • 3. AGENDA ● Sistema Modular - Proyecto Jigsaw ● Instalación de JDK 9 ● Explorando Java 9 con Eclipse ● Cambios en el Lenguaje ● Mejoras a varios API ● Nuevas APIs y funcionalidades ● Conclusiones
  • 4.
  • 5. Sistema Modular : Proyecto Jigsaw Es la principal novedad en Java 9. La idea de un sistema modular es hacer el jdk más ligero para dispositivos pequeños. El sistema de módulos proporcionará a la aplicación la capacidad de utilizar sólo los módulos del jdk que sean necesarios. Las aplicaciones ya no necesitarán el jdk completo. El sistema de módulos encapsula las clases públicas dentro de un módulo. Así que clase definida pública no estaría disponible para el mundo entero hasta que un módulo lo defina explícitamente.
  • 6. Sistema Modular - Proyecto Jigsaw Los módulos van a ser descritos en un archivo llamado module-info.java ubicado en la parte superior de la jerarquía de código java. El archivo module-info provee: 1. Nombre del módulo. 2. Lista de dependencias de módulos necesarias para la correcta compilación y ejecución. 3. Información sobre paquetes exportados por este módulo. 4. Lista de servicios que proporciona el módulo en tiempo de ejecución.
  • 7. Sistema Modular - Proyecto Jigsaw
  • 8. Sistema Modular - Proyecto Jigsaw com.example.samplemodule : es el nombre del módulo. requires : Indica que son dependencia del módulo exports : Todas las clases públicas en estos paquetes serán accesibles a otros módulos que dependen de él. uses : Para usar datos de otros módulos. provides : Proporciona configuración al servicio de otro módulo
  • 9. Instalación de Java SE 9 ❏ Descargar y descomprimir > http://www.oracle.com/technetwork/java/javase/downloads/jdk9-downlo ads-3848520.html ❏ Asegúrese de que la variable de entorno JAVA_HOME está en apuntando al directorio del JDK ❏ Instalar un IDE con soporte para Java 9
  • 10. Instalación de Java SE 9 ❏ Descargar y descomprimir > http://www.oracle.com/technetwork/java/javase/downloads/jdk9-downloads-3848520.html ❏ Asegúrese de que la variable de entorno JAVA_HOME está en apuntando al directorio del JDK ❏ Instalar un IDE con soporte para Java 9
  • 11. IDE que soportan Java SE 9 NetBens 9 (No hay fecha exacta para el lanzamiento) http://wiki.netbeans.org /NetBeans_9#Schedule Eclipse IDE, Oxygen Edition https://www.eclipse. org/downloads/ IntelliJ IDEA (versión 2017.2 del 18 de Julio o superior ) https://www.jetbrains.co m/idea/download/
  • 12. Explorando Java 9 con Eclipse
  • 13. Demo Vamos a explorar varios ejemplos. https://github.com/ecabrerar/java9-labs/tree/mas ter/jigsaw
  • 14. Explorando Java 9 desde la línea de comandos
  • 15. Sistema Modular - Proyecto Jigsaw $ javac -d mods/com.eudriscabrera.examples.greetings com.eudriscabrera.examples.greetings/com/eudriscabrera/examples/greetings/Main.java com.eudriscabrera.examples.greetings/module-info.java
  • 16. Sistema Modular - Proyecto Jigsaw Crear un jar a partir de módulo $ jar -c -f com.eudriscabrera.examples.greetings.jar -C com.eudriscabrera.examples.greetings .
  • 17. Cambios en el Lenguaje
  • 18. Métodos Privados en Interfaces Además de los métodos default "predeterminados", ahora en Java 9 puede declarar métodos privados. La idea es poder ocultar aquellas implementaciones de métodos que no tienen que ser expuesta a las clases que implementen la interfaz.
  • 19. Los métodos por defecto en Java 8 fue una funcionalidad bien recibida, pero había un detalle desafortunado: reutilizar el código entre los métodos predeterminados era desagradable.
  • 20. Métodos Privados en Interfaces
  • 22. Try-With-Resources en variable Efectivamente Final
  • 24. Mejoras al API Stream Hay varios métodos nuevos agregados a la interfaz de Stream: dropWhile, takeWhile, entre otros.
  • 25. Método factory para Collection
  • 26. Temas para investigar ● Multi-release JARs ● Imagenes con multiples resoluciones ● Process API ● Reactive Streams
  • 28. JShell - Java 9 REPL Un REPL (Read-Eval-Print Loop) es una herramienta de línea de comandos para la ejecución de sentencias de forma rápida.
  • 29. Demo Ejemplos básicos en JShell con fines demostrativos
  • 30.
  • 31.
  • 32. Puntos a tomar en cuenta antes de migrar a Java 9
  • 33. Ciclo de lanzamiento Java 9 representa el final de la era de las versiones Java basadas en funciones. En el pasado, se seleccionaron algunas características importantes, y cada vez que estaban listas, se realizó una nueva versión principal de Java.
  • 34. En la práctica, esto condujo a al menos tres años entre lanzamientos importantes. Eso no es aceptable en estos tiempos, por lo que Oracle y el proyecto OpenJDK están cambiando a versiones basadas en el tiempo. Ahora, cada 6 meses se lanzará una nueva versión de Java. Contendrá todas las características que estén listas para ese momento. Entre estos lanzamientos de 6 meses, las actualizaciones con soluciones críticas aún se pueden lanzar cuando sea necesario.
  • 35. Calendario de Lanzamiento Este nuevo calendario de lanzamientos tiene varias implicaciones. En primer lugar, las versiones de Java se vuelven más frecuentes y predecibles. El plan actual es lanzar Java en marzo y septiembre de cada año. El nuevo esquema de número de versión propuesto para incrementar la versión principal cada seis meses, lo que significa que la próxima versión en marzo de 2018 será Java 10. Sin embargo, el esquema de versión aún está en discusión.
  • 36. Versiones con soporte a largo plazo (LTS) La actualización de su versión de Java cada 6 meses no es una perspectiva tentadora para muchas organizaciones. Por lo tanto, habrá versiones de soporte a largo plazo (LTS) designadas cada tres años. La primera versión de LTS será el lanzamiento de septiembre de 2018. Eso también significa que Java 9 no estará disponible para las versiones compatibles a largo plazo.
  • 37. Conclusiones Desde una perspectiva de operaciones, esperar al lanzamiento de la primera versión soporte a largo plazo (LTS) es una estrategia atractiva. Desde una perspectiva de desarrollo, hay demasiados cambios importantes que surgen del JDK modularizado para posponer la adopción. La recomendación de los expertos es comenzar a desarrollar su aplicación sobre Java 9 lo antes posible. No tiene que usar módulos para su aplicación cuando se migre a Java 9; Los módulos son completamente opcionales. Una opción es comenzar a usar JDK 9 para desarrollar sus aplicaciones, pero apuntando a JDK 8 como tiempo de ejecución. Un nuevo indicador (flag) '--release' para este escenario.
  • 40. Referencias Recursos para Java 9 Enlaces: https://www.sitepoint.com/ultimate-guide-to-java-9/ https://blogs.oracle.com/darcy/more-concise-try-with-resources-statements-in-jdk-9 https://blogs.oracle.com/java/features-in-java-8-and-9 https://www.pluralsight.com/blog/software-development/java-9-new-features https://aboullaite.me/wrapping-up-java-9-new-features/?imm_mid=0f16b7&cmp=em-prog-na-na-newsltr_20170506 https://www.pluralsight.com/blog/software-development/java-9-impact http://www.baeldung.com/java-9-stream-api
  • 42. Asuntos Legales Todas las marcas registradas, así como todos los logotipos, imágenes, fotografías, audio y vídeos mostrados en esta presentación son propiedad de sus respectivos propietarios y/o representantes. Su utilización es solamente para fines ilustrativos.
  • 43. @eudriscabrera @eudris @ecabrerar @eudriscabrera Eudris Cabrera Rodríguez Ingeniero Telemático Desarrollador de Software / Consultor Informático eudris@gmail.com https://www.linkedin.com/in/eudriscabrera http://www.slideshare.net/eudris https://twitter.com/eudriscabrera https://github.com/ecabrerar