SlideShare una empresa de Scribd logo
1 de 15
PROGRAMACION MODULAR EN JAVA 9
Presenta:
FABIO GARCIA RAMIREZ
AGENDA
FABIO GARCIA RAMIREZ
 Novedades Java 9
 Proceso de Desarrollo antes de Java 9
 Sistema de Módulos en Java 9
 Demostración de Implementación de Módulos
Novedades Java 9
FABIO GARCIA RAMIREZ
 Java 9 fue liberado el 21 de
Septiembre de 2017, tres años
después de la última versión(Java 8)
 Esta version trae dos importantes
caracteristicas: el Sistema de
módulos y un nuevo esquema en la
manera de nombrar y liberar las
siguientes versions del JDK.
 Otras novedades de interes son:
mejoras en la API de gestión de
colecciones(listas, conjuntos y
mapas), un Garbage Collector(G1)
multihilo, mejoras en la
herramienta Jshell(Consola REPL),
entre otras.
Proceso de Desarrollo antes de Java 9
FABIO GARCIA RAMIREZ
Escritura del Código Java en forma de Clases,
interfaces, enumeraciones y anotaciones
Organización del código fuente en paquetes
Código compilado en archivos JAR
La aplicación puede utilizar librerías, las cuales
normalmente se suministran en uno o mas archivos
JAR.
La aplicación se distribuye, localizando todos los
archivos JAR’s en el CLASSPATH
Proceso de Desarrollo antes de Java 9
FABIO GARCIA RAMIREZ
JARHELL
Acceso ilimitado de los tipos
públicos entre paquetes
Ocultamiento de Clases con
el mismo nombre en
diferentes paquetes
Conflicto de versiones
Proceso de Desarrollo antes de Java 9
FABIO GARCIA RAMIREZ
Vista de los JAR’s cargados en el CLASSPATH y como
se comunican entre ellos
Sistema de Módulos en Java 9
FABIO GARCIA RAMIREZ
 JSR 376 es la especificación oficial que define y especifica el sistema de módulos
para Java(http://openjdk.java.net/projects/jigsaw/spec/ ). La especificación JEP 261
implementa el sistema.
 Introduce una nueva clase de componente en Java, denominado el Modulo, el cual
es una colección de código y datos.
 Introduce una nueva fase opcional: link time, el cual se ubica entre el tiempo de
compilación y el de ejecución, durante el cual un conjunto de módulos pueden ser
ensamblados y optimizados en una imagen en tiempo de ejecución(herramienta
jlink).
 Adiciona opciones a las herramientas javac, jlink y java para especificar las rutas y
directorios donde están ubicados los módulos.
 Presenta la gestión modular de los archivos JAR, mediante la inclusión del archivo
module-info.class
 Adiciona el formato JMOD, la cual es una forma de empaquetado similar a JAR, pero
incluyendo código nativo y archivos de configuración(herramienta jmod)
 La división del JDK en módulos, los cuales se pueden combinar en tiempo de
compilación, ensamblado, instalación o ejecución.
Sistema de Módulos en Java 9
FABIO GARCIA RAMIREZ
Objetivos
Configuración
Confiable
Encapsulaciónón
robusta
JDK/JRE Modular
Sistema de Módulos en Java 9
FABIO GARCIA RAMIREZ
Module1 Module3Module2 Module4
Sistema de Módulos en Java 9
FABIO GARCIA RAMIREZ
Nombre del
Modulo
Contenido
Dependencia
•Compuesto de 1 o mas Identificadores
cualificados en Java, separados por punto.
•Ejemplos: Modulo1, com.mod1,
•Paquetes
•Clases
•Interfaces
•Archivos de Configuración
•Listado de módulos que son requeridos
EXPORTACIONES
• Listado de paquetes que se
exportan(API publicas), haciéndolos
disponibles a otros módulos.
• Listado de paquetes que son
Abiertos(API con elementos públicos y
privados)
• Restricciones
Sistema de Módulos en Java 9
FABIO GARCIA RAMIREZ
Dependencia entre Módulos
Sistema de Módulos en Java 9
FABIO GARCIA RAMIREZ
Dependencia entre Módulos
Sistema de Módulos en Java 9
FABIO GARCIA RAMIREZ
Representación Gráfica de dependencia entre módulos
Sistema de Módulos en Java 9
FABIO GARCIA RAMIREZ
DEMO
fagarra
Fabio Garcia
Ramirez
Fabio Garcia Ramirez
Fabio Garcia
fagarra@gmail.com
fgarcia@tecnologicocomfenalco.edu.co
fagarra

Más contenido relacionado

La actualidad más candente

Programacion Orientada a Objetos en python
Programacion Orientada a Objetos en pythonProgramacion Orientada a Objetos en python
Programacion Orientada a Objetos en pythonwozgeass
 
Constructores en Java
Constructores en JavaConstructores en Java
Constructores en JavaUCE
 
Laboratorio Redes de Datos - Práctica 02
Laboratorio Redes de Datos - Práctica 02Laboratorio Redes de Datos - Práctica 02
Laboratorio Redes de Datos - Práctica 02Cristian Ortiz Gómez
 
2.1 aplicaciones la interfaz entre redes
2.1 aplicaciones la interfaz entre redes2.1 aplicaciones la interfaz entre redes
2.1 aplicaciones la interfaz entre redesMoises jimenez Chavez
 
Introduccion al cableado estructurado
Introduccion al cableado estructuradoIntroduccion al cableado estructurado
Introduccion al cableado estructuradoLeidyEspinoza6
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Giancarlo Aguilar
 
PAQUETES EN JAVA
PAQUETES EN JAVAPAQUETES EN JAVA
PAQUETES EN JAVAmellcv
 
Programación Orientada a Objetos - Otras relaciones entre clases
Programación Orientada a Objetos - Otras relaciones entre clasesProgramación Orientada a Objetos - Otras relaciones entre clases
Programación Orientada a Objetos - Otras relaciones entre clasesAlvaro Enrique Ruano
 
Manejo de archivos en JAVA
Manejo de archivos en JAVAManejo de archivos en JAVA
Manejo de archivos en JAVAMichelle Torres
 
CUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IP
CUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IPCUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IP
CUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IPdisenarUniminuto
 
CONMUTACIÓN DE CIRCUITOS
CONMUTACIÓN DE CIRCUITOS CONMUTACIÓN DE CIRCUITOS
CONMUTACIÓN DE CIRCUITOS Victor Miles
 
La capa de aplicación
La capa de aplicaciónLa capa de aplicación
La capa de aplicaciónJuan Alvarez
 

La actualidad más candente (20)

Programacion Orientada a Objetos en python
Programacion Orientada a Objetos en pythonProgramacion Orientada a Objetos en python
Programacion Orientada a Objetos en python
 
Tema4 programación generica
Tema4   programación genericaTema4   programación generica
Tema4 programación generica
 
DIRECCIONAMIENTO IP: IPv4 y IPv6
DIRECCIONAMIENTO  IP: IPv4 y IPv6DIRECCIONAMIENTO  IP: IPv4 y IPv6
DIRECCIONAMIENTO IP: IPv4 y IPv6
 
Routers CIsco: configu
Routers CIsco: configuRouters CIsco: configu
Routers CIsco: configu
 
Constructores en Java
Constructores en JavaConstructores en Java
Constructores en Java
 
Laboratorio Redes de Datos - Práctica 02
Laboratorio Redes de Datos - Práctica 02Laboratorio Redes de Datos - Práctica 02
Laboratorio Redes de Datos - Práctica 02
 
2.1 aplicaciones la interfaz entre redes
2.1 aplicaciones la interfaz entre redes2.1 aplicaciones la interfaz entre redes
2.1 aplicaciones la interfaz entre redes
 
Estructura Básica de PHP
Estructura Básica de PHPEstructura Básica de PHP
Estructura Básica de PHP
 
Introduccion al cableado estructurado
Introduccion al cableado estructuradoIntroduccion al cableado estructurado
Introduccion al cableado estructurado
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.
 
Interfaces en java
Interfaces en javaInterfaces en java
Interfaces en java
 
direcciones ip no validas
direcciones ip no validasdirecciones ip no validas
direcciones ip no validas
 
PAQUETES EN JAVA
PAQUETES EN JAVAPAQUETES EN JAVA
PAQUETES EN JAVA
 
Programación Orientada a Objetos - Otras relaciones entre clases
Programación Orientada a Objetos - Otras relaciones entre clasesProgramación Orientada a Objetos - Otras relaciones entre clases
Programación Orientada a Objetos - Otras relaciones entre clases
 
Manejo de archivos en JAVA
Manejo de archivos en JAVAManejo de archivos en JAVA
Manejo de archivos en JAVA
 
Introduccion a Python
Introduccion a PythonIntroduccion a Python
Introduccion a Python
 
Cableado estructurado (redes)
Cableado estructurado (redes)Cableado estructurado (redes)
Cableado estructurado (redes)
 
CUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IP
CUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IPCUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IP
CUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IP
 
CONMUTACIÓN DE CIRCUITOS
CONMUTACIÓN DE CIRCUITOS CONMUTACIÓN DE CIRCUITOS
CONMUTACIÓN DE CIRCUITOS
 
La capa de aplicación
La capa de aplicaciónLa capa de aplicación
La capa de aplicación
 

Similar a Programación Modular con Java 9 (20)

MODULARIDAD.pptx
MODULARIDAD.pptxMODULARIDAD.pptx
MODULARIDAD.pptx
 
Arquitectura del JDK.pptx
Arquitectura del JDK.pptxArquitectura del JDK.pptx
Arquitectura del JDK.pptx
 
Primeros pasos con java 9
Primeros pasos con java 9Primeros pasos con java 9
Primeros pasos con java 9
 
5 lenguaje
5 lenguaje5 lenguaje
5 lenguaje
 
Creando módulos en Drupal 7
Creando módulos en Drupal 7Creando módulos en Drupal 7
Creando módulos en Drupal 7
 
5 lenguaje (caso de uso)
5 lenguaje  (caso de uso)5 lenguaje  (caso de uso)
5 lenguaje (caso de uso)
 
Apuntes ejercicios programacion i
Apuntes ejercicios programacion iApuntes ejercicios programacion i
Apuntes ejercicios programacion i
 
Framework spring
Framework springFramework spring
Framework spring
 
PRIMERA PRESENTACION JAVA
PRIMERA PRESENTACION JAVAPRIMERA PRESENTACION JAVA
PRIMERA PRESENTACION JAVA
 
03. empaquetado de aplicaciones jee
03. empaquetado de aplicaciones jee03. empaquetado de aplicaciones jee
03. empaquetado de aplicaciones jee
 
Semana9 Vbr
Semana9 VbrSemana9 Vbr
Semana9 Vbr
 
Tutorial javafx-primeros-pasos
Tutorial javafx-primeros-pasosTutorial javafx-primeros-pasos
Tutorial javafx-primeros-pasos
 
Java
JavaJava
Java
 
[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
 
Evolución de java
Evolución de javaEvolución de java
Evolución de java
 
Librerias java
Librerias javaLibrerias java
Librerias java
 
Java
JavaJava
Java
 
Capitulo_3_1.pptx
Capitulo_3_1.pptxCapitulo_3_1.pptx
Capitulo_3_1.pptx
 
Unidad i poo avanzada
Unidad i   poo avanzadaUnidad i   poo avanzada
Unidad i poo avanzada
 
Guia3 java
Guia3 javaGuia3 java
Guia3 java
 

Más de Software Guru

Hola Mundo del Internet de las Cosas
Hola Mundo del Internet de las CosasHola Mundo del Internet de las Cosas
Hola Mundo del Internet de las CosasSoftware Guru
 
Estructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso realesEstructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso realesSoftware Guru
 
Building bias-aware environments
Building bias-aware environmentsBuilding bias-aware environments
Building bias-aware environmentsSoftware Guru
 
El secreto para ser un desarrollador Senior
El secreto para ser un desarrollador SeniorEl secreto para ser un desarrollador Senior
El secreto para ser un desarrollador SeniorSoftware Guru
 
Cómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto idealCómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto idealSoftware Guru
 
Automatizando ideas con Apache Airflow
Automatizando ideas con Apache AirflowAutomatizando ideas con Apache Airflow
Automatizando ideas con Apache AirflowSoftware Guru
 
How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:Software Guru
 
Introducción al machine learning
Introducción al machine learningIntroducción al machine learning
Introducción al machine learningSoftware Guru
 
Democratizando el uso de CoDi
Democratizando el uso de CoDiDemocratizando el uso de CoDi
Democratizando el uso de CoDiSoftware Guru
 
Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0Software Guru
 
Taller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJSTaller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJSSoftware Guru
 
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...Software Guru
 
¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?Software Guru
 
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.Software Guru
 
Pruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOpsPruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOpsSoftware Guru
 
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivosElixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivosSoftware Guru
 
Así publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stressAsí publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stressSoftware Guru
 
Achieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goalsAchieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goalsSoftware Guru
 
Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19Software Guru
 
De lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseñoDe lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseñoSoftware Guru
 

Más de Software Guru (20)

Hola Mundo del Internet de las Cosas
Hola Mundo del Internet de las CosasHola Mundo del Internet de las Cosas
Hola Mundo del Internet de las Cosas
 
Estructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso realesEstructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso reales
 
Building bias-aware environments
Building bias-aware environmentsBuilding bias-aware environments
Building bias-aware environments
 
El secreto para ser un desarrollador Senior
El secreto para ser un desarrollador SeniorEl secreto para ser un desarrollador Senior
El secreto para ser un desarrollador Senior
 
Cómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto idealCómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto ideal
 
Automatizando ideas con Apache Airflow
Automatizando ideas con Apache AirflowAutomatizando ideas con Apache Airflow
Automatizando ideas con Apache Airflow
 
How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:
 
Introducción al machine learning
Introducción al machine learningIntroducción al machine learning
Introducción al machine learning
 
Democratizando el uso de CoDi
Democratizando el uso de CoDiDemocratizando el uso de CoDi
Democratizando el uso de CoDi
 
Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0
 
Taller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJSTaller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJS
 
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
 
¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?
 
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
 
Pruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOpsPruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOps
 
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivosElixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
 
Así publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stressAsí publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stress
 
Achieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goalsAchieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goals
 
Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19
 
De lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseñoDe lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseño
 

Último

trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
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
 
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
 
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
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxRogerPrieto3
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
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
 
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
 
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
 
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
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
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
 
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
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
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
 

Último (15)

trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
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)
 
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
 
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...
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
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
 
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
 
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
 
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
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
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
 
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
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
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
 

Programación Modular con Java 9

  • 1. PROGRAMACION MODULAR EN JAVA 9 Presenta: FABIO GARCIA RAMIREZ
  • 2. AGENDA FABIO GARCIA RAMIREZ  Novedades Java 9  Proceso de Desarrollo antes de Java 9  Sistema de Módulos en Java 9  Demostración de Implementación de Módulos
  • 3. Novedades Java 9 FABIO GARCIA RAMIREZ  Java 9 fue liberado el 21 de Septiembre de 2017, tres años después de la última versión(Java 8)  Esta version trae dos importantes caracteristicas: el Sistema de módulos y un nuevo esquema en la manera de nombrar y liberar las siguientes versions del JDK.  Otras novedades de interes son: mejoras en la API de gestión de colecciones(listas, conjuntos y mapas), un Garbage Collector(G1) multihilo, mejoras en la herramienta Jshell(Consola REPL), entre otras.
  • 4. Proceso de Desarrollo antes de Java 9 FABIO GARCIA RAMIREZ Escritura del Código Java en forma de Clases, interfaces, enumeraciones y anotaciones Organización del código fuente en paquetes Código compilado en archivos JAR La aplicación puede utilizar librerías, las cuales normalmente se suministran en uno o mas archivos JAR. La aplicación se distribuye, localizando todos los archivos JAR’s en el CLASSPATH
  • 5. Proceso de Desarrollo antes de Java 9 FABIO GARCIA RAMIREZ JARHELL Acceso ilimitado de los tipos públicos entre paquetes Ocultamiento de Clases con el mismo nombre en diferentes paquetes Conflicto de versiones
  • 6. Proceso de Desarrollo antes de Java 9 FABIO GARCIA RAMIREZ Vista de los JAR’s cargados en el CLASSPATH y como se comunican entre ellos
  • 7. Sistema de Módulos en Java 9 FABIO GARCIA RAMIREZ  JSR 376 es la especificación oficial que define y especifica el sistema de módulos para Java(http://openjdk.java.net/projects/jigsaw/spec/ ). La especificación JEP 261 implementa el sistema.  Introduce una nueva clase de componente en Java, denominado el Modulo, el cual es una colección de código y datos.  Introduce una nueva fase opcional: link time, el cual se ubica entre el tiempo de compilación y el de ejecución, durante el cual un conjunto de módulos pueden ser ensamblados y optimizados en una imagen en tiempo de ejecución(herramienta jlink).  Adiciona opciones a las herramientas javac, jlink y java para especificar las rutas y directorios donde están ubicados los módulos.  Presenta la gestión modular de los archivos JAR, mediante la inclusión del archivo module-info.class  Adiciona el formato JMOD, la cual es una forma de empaquetado similar a JAR, pero incluyendo código nativo y archivos de configuración(herramienta jmod)  La división del JDK en módulos, los cuales se pueden combinar en tiempo de compilación, ensamblado, instalación o ejecución.
  • 8. Sistema de Módulos en Java 9 FABIO GARCIA RAMIREZ Objetivos Configuración Confiable Encapsulaciónón robusta JDK/JRE Modular
  • 9. Sistema de Módulos en Java 9 FABIO GARCIA RAMIREZ Module1 Module3Module2 Module4
  • 10. Sistema de Módulos en Java 9 FABIO GARCIA RAMIREZ Nombre del Modulo Contenido Dependencia •Compuesto de 1 o mas Identificadores cualificados en Java, separados por punto. •Ejemplos: Modulo1, com.mod1, •Paquetes •Clases •Interfaces •Archivos de Configuración •Listado de módulos que son requeridos EXPORTACIONES • Listado de paquetes que se exportan(API publicas), haciéndolos disponibles a otros módulos. • Listado de paquetes que son Abiertos(API con elementos públicos y privados) • Restricciones
  • 11. Sistema de Módulos en Java 9 FABIO GARCIA RAMIREZ Dependencia entre Módulos
  • 12. Sistema de Módulos en Java 9 FABIO GARCIA RAMIREZ Dependencia entre Módulos
  • 13. Sistema de Módulos en Java 9 FABIO GARCIA RAMIREZ Representación Gráfica de dependencia entre módulos
  • 14. Sistema de Módulos en Java 9 FABIO GARCIA RAMIREZ DEMO
  • 15. fagarra Fabio Garcia Ramirez Fabio Garcia Ramirez Fabio Garcia fagarra@gmail.com fgarcia@tecnologicocomfenalco.edu.co fagarra