Envíanos tu consulta
Términos y condiciones *
logoImagina
Formación
Modalidades
Próximas Convocatorias
Temario
FAQ
Solicitar información
iconoCurso

Curso de Java Moderno: Lambdas y Módulos

DISPONIBLE EN MODALIDAD:
aMedidaIcon
Aula Virtual Personalizada
arrowRightDark

Domina las características avanzadas de Java Moderno, incluyendo programación funcional con Lambdas, Streams, modularidad con el sistema de módulos (JPMS) y las mejoras más relevantes de la última versión del JDK. Este curso está diseñado para desarrolladores experimentados que buscan llevar sus habilidades a un nuevo nivel con prácticas modernas y eficientes.

iconClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClienticonClient

Formación en Java Moderno: Lambdas y Módulos bonificable para empresas

A quién va dirigido nuestro curso de Java Moderno: Lambdas y Módulos

Desarrolladores Java con experiencia que desean dominar las características avanzadas de Java y aplicar las novedades de la última versión estable.

Objetivos de nuestro curso de Java Moderno: Lambdas y Módulos

  • Dominar el uso avanzado de Lambdas y Streams para optimizar la programación funcional en Java.
  • Comprender e implementar modularidad con el sistema de módulos introducido en Java 9 y sus evoluciones.
  • Aplicar las novedades y características clave introducidas en la última versión estable de Java.
  • Mejorar el rendimiento, la legibilidad y la mantenibilidad del código con prácticas modernas de Java.
  • Integrar las nuevas características en proyectos existentes y entornos empresariales.

Qué vas a aprender en nuestro curso de Java Moderno: Lambdas y Módulos

Domina las características avanzadas de Java Moderno, incluyendo programación funcional con Lambdas, Streams, modularidad con el sistema de módulos (JPMS) y las mejoras más relevantes de la última versión del JDK. Este curso está diseñado para desarrolladores experimentados que buscan llevar sus habilidades a un nuevo nivel con prácticas modernas y eficientes.

Requisitos de nuestro curso de Java Moderno: Lambdas y Módulos

  • Experiencia sólida programando en Java, con dominio de OOP (Programación Orientada a Objetos).
  • Familiaridad con herramientas de desarrollo: IntelliJ IDEA, Eclipse o NetBeans.
  • Instalación previa del JDK en su última versión estable (17 o superior).
  • Conocimiento de Maven o Gradle para la gestión de dependencias.
  • Equipo con mínimo 8 GB de RAM, procesador Intel i5 o superior y 20 GB de espacio libre en disco
  • Permisos administrativos para instalación de software.

Temario del curso de Java Moderno: Lambdas y Módulos

tema 1

Introducción al Java "Moderno"

  • Evolución de Java: del JDK 8 a las versiones actuales
  • Filosofía de Java Moderno y sus mejoras clave
  • Características y mejoras en la última versión estable
  • Cambios en el soporte de versiones LTS (Long Term Support)
  • Herramientas recomendadas para desarrollo moderno
  • Migración de proyectos antiguos a versiones modernas
  • Introducción al rendimiento mejorado con JIT y GraalVM
  • Compatibilidad hacia atrás y bibliotecas modernas
  • Ejemplo práctico: Configuración del entorno de desarrollo
  • Instalación del JDK y comprobación de la versión
iconArrowDown
tema 2

Programación Funcional con Lambdas

  • Fundamentos de programación funcional en Java
  • Expresiones Lambda: sintaxis y beneficios
  • Implementación de interfaces funcionales y `@FunctionalInterface`
  • Uso de Lambdas en colecciones con `Stream API`
  • Métodos de referencia (`::`) y simplificación de código
  • Predicados, consumidores y funciones con la API de java.util.function
  • Tratamiento de excepciones en expresiones Lambda
  • Optimización y buenas prácticas con Lambdas
  • Ejercicio práctico: Refactorización funcional de código existente
  • Comparación de programación imperativa vs funcional
iconArrowDown
tema 3

Stream API: Procesamiento Eficiente de Datos

  • Introducción al procesamiento de datos con Streams
  • Operaciones intermedias y terminales en Stream
  • Uso avanzado de `filter`, `map`, `reduce` y `collect`
  • Streams paralelos y mejora de rendimiento
  • Gestión de datos nulos con `Optional`
  • Creación de Streams personalizados
  • Ejercicio práctico: Procesamiento de grandes volúmenes de datos
  • Benchmarking de Streams vs bucles tradicionales
  • Buenas prácticas para optimización de Streams
  • Uso de Collector API y métodos como `joining`, `groupingBy` y `partitioningBy`
iconArrowDown
tema 4

Sistema de Módulos de Java (JPMS)

  • Introducción a la modularidad en Java
  • Creación de módulos con `module-info.java`
  • Exportación, requerimientos y encapsulamiento de paquetes
  • Uso de módulos en proyectos Maven y Gradle
  • Herramientas para analizar dependencias y relaciones de módulos
  • Migración de aplicaciones monolíticas al sistema modular
  • Ejercicio práctico: Creación de un sistema modularizado desde cero
  • Ejecución de aplicaciones modulares con `java --module-path`
  • Mejora de seguridad y mantenimiento del código con JPMS
  • Problemas comunes y resolución de conflictos en modularidad
iconArrowDown
tema 5

Novedades del JDK Actual (última versión estable)

  • Nuevas funcionalidades del lenguaje y mejoras de sintaxis
  • Mejoras en la API de `java.util`, `java.time` y `String`
  • Introducción a las `Pattern Matching` y `Switch Expressions`
  • Uso de `Records` para clases inmutables y concisas
  • Mejora de rendimiento con JIT y Garbage Collectors
  • Actualizaciones en concurrencia y paralelismo
  • Ejercicio práctico: Implementación de una nueva característica
  • Exploración de incubadoras y características preview
  • Integración de características en proyectos legacy
  • Herramientas avanzadas de depuración y testing
iconArrowDown
tema 6

Records y Sealed Classes

  • Introducción a **Records** para manejo de datos inmutables
  • Sintaxis y ventajas de los Records
  • Ejemplo práctico: Implementación de DTOs con Records
  • Uso de Sealed Classes para restringir la herencia
  • Creación de jerarquías seguras y mantenibles
  • Ejercicio práctico: Migración de clases tradicionales a Records y Sealed Classes
  • Comparación con otras implementaciones (Lombok, etc.)
  • Optimización de código con estructuras más concisas
  • Casos de uso recomendados en la industria
  • Buenas prácticas al utilizar estas funcionalidades
iconArrowDown
tema 7

Concurrent Programming y Virtual Threads

  • Introducción a la programación concurrente en Java
  • Uso del paquete `java.util.concurrent` y sus mejoras
  • Manejo de Virtual Threads (Project Loom) en Java moderno
  • Comparación entre Threads clásicos y Virtual Threads
  • Ejemplo práctico: Implementación de tareas paralelas
  • Uso de `CompletableFuture` para programación asíncrona
  • Prácticas recomendadas para evitar bloqueos
  • Mejoras en `ForkJoinPool` y optimización de recursos
  • Uso de Executors y Pools personalizados
  • Benchmarking de rendimiento en concurrencia
iconArrowDown
tema 8

Manejo de Errores y Excepciones Modernas

  • Mejora en el tratamiento de excepciones
  • Uso de `try-with-resources` y auto-closeable
  • Excepciones en Streams y Lambdas
  • Mejores prácticas para logging con SLF4J y Logback
  • Implementación de excepciones personalizadas
  • Gestión de errores con `Optional` y `orElseThrow`
  • Integración con herramientas de diagnóstico en tiempo de ejecución
  • Ejercicio práctico: Manejo robusto de excepciones en un servicio REST
  • Captura múltiple con `multi-catch` y rethrow simplificado
  • Buenas prácticas para manejo eficiente de errores
iconArrowDown
tema 9

Garbage Collectors (GC) Modernos

  • Introducción a la gestión de memoria en Java
  • Comparación de Garbage Collectors: G1, ZGC y Shenandoah
  • Configuración de GC y benchmarking de rendimiento
  • Optimización del uso de memoria en aplicaciones Java
  • Ejemplo práctico: Diagnóstico de problemas de rendimiento
  • Mejores prácticas para configurar GC en producción
  • Monitoreo con JVisualVM y herramientas JDK Flight Recorder
  • Minimización de pausas con GC modernos
  • Troubleshooting de fugas de memoria
  • Ejercicio práctico: Optimizar GC para una aplicación intensiva
iconArrowDown
tema 10

Herramientas Modernas para Desarrolladores Java

  • Uso de **JEPs** y características en preview
  • Java Flight Recorder (JFR) para profiling
  • Introducción a GraalVM y AOT (Ahead-of-Time Compilation)
  • Integración de Maven y Gradle en proyectos modernos
  • Testing con JUnit 5 y Mockito
  • Ejercicio práctico: Pipeline CI/CD con Maven y JDK actual
  • Exploración de nuevas herramientas CLI en JDK
  • Integración con contenedores Docker y Kubernetes
  • Uso de IDEs modernos: IntelliJ, Eclipse y VSCode
  • Configuración de entornos eficientes y productivos
iconArrowDown
tema 11

Proyecto Final: Desarrollo de una Aplicación Modular

  • Diseño del proyecto y definición de requisitos
  • Implementación de Lambdas y Streams para procesamiento funcional
  • Modularización de la aplicación con JPMS
  • Uso de Records y Sealed Classes en el modelo de datos
  • Integración de Virtual Threads para rendimiento optimizado
  • Pruebas unitarias y depuración de código
  • Monitoreo de rendimiento con JFR y profiling
  • Creación de pipelines automatizados con Maven y CI/CD
  • Documentación de la solución
iconArrowDown