Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Upcoming SlideShare
What to Upload to SlideShare
What to Upload to SlideShare
Loading in …3
×
1 of 43

More Related Content

You Might Also Like

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Primeros pasos con java 9

  1. 1. Primeros pasos .... Eudris Cabrera @eudriscabrera 18 Noviembre 2017, PUCMM, Santiago de los caballeros, R. D.
  2. 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. 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. 4. 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.
  5. 5. 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.
  6. 6. Sistema Modular - Proyecto Jigsaw
  7. 7. 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
  8. 8. 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
  9. 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
  10. 10. 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/
  11. 11. Explorando Java 9 con Eclipse
  12. 12. Demo Vamos a explorar varios ejemplos. https://github.com/ecabrerar/java9-labs/tree/mas ter/jigsaw
  13. 13. Explorando Java 9 desde la línea de comandos
  14. 14. 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
  15. 15. 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 .
  16. 16. Cambios en el Lenguaje
  17. 17. 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.
  18. 18. 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.
  19. 19. Métodos Privados en Interfaces
  20. 20. Try-With-Resources
  21. 21. Try-With-Resources en variable Efectivamente Final
  22. 22. Mejoras a varios APIs
  23. 23. Mejoras al API Stream Hay varios métodos nuevos agregados a la interfaz de Stream: dropWhile, takeWhile, entre otros.
  24. 24. Método factory para Collection
  25. 25. Temas para investigar ● Multi-release JARs ● Imagenes con multiples resoluciones ● Process API ● Reactive Streams
  26. 26. Explorando a JShell
  27. 27. 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.
  28. 28. Demo Ejemplos básicos en JShell con fines demostrativos
  29. 29. Puntos a tomar en cuenta antes de migrar a Java 9
  30. 30. 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.
  31. 31. 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.
  32. 32. 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.
  33. 33. 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.
  34. 34. 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.
  35. 35. ¿Preguntas?
  36. 36. ¡Gracias por Acompañarnos!
  37. 37. 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
  38. 38. https://github.com/ecabrerar/java9-labs Código fuente de los ejemplos en GitHub
  39. 39. 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.
  40. 40. @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

×