Saltar al contenido principal
Formación DatIACode

Java avanzado: streams, lambdas y concurrencia

Domina las capacidades avanzadas de Java: programación funcional con lambdas y streams, Optional bien usado, y concurrencia moderna con executors, CompletableFuture y virtual threads.

Nivel
Avanzado
Duración
24 horas
Modalidades
Online en directo · In-company · A medida
Dirigido a
Desarrolladores Java con experiencia que quieren dominar el estilo funcional y la concurrencia.
Sobre el curso

¿Qué es este curso y por qué te interesa?

Hay dos áreas de Java que separan a un desarrollador competente de uno avanzado: el estilo funcional y la concurrencia. La primera porque los streams y las lambdas dominan el código moderno y usarlos mal produce pipelines ilegibles o lentos. La segunda porque la concurrencia es donde aparecen los errores más caros de producción: condiciones de carrera, deadlocks y fugas de hilos que no se reproducen en desarrollo.

Este curso trabaja ambas en profundidad. En la parte funcional: interfaces funcionales, lambdas y method references, la API de streams con sus collectors, el diseño de pipelines legibles, Optional usado con criterio y los límites reales de los parallel streams. En la parte concurrente: el modelo de memoria de Java, executors y pools de hilos, composición asíncrona con CompletableFuture, colecciones concurrentes y los virtual threads que Java 21 incorporó como cambio de paradigma para cargas de I/O.

El enfoque es de diagnóstico y criterio, no de recetario: cada técnica se acompaña de sus casos de uso, sus costes y sus errores típicos, con laboratorios donde se provocan y corrigen condiciones de carrera, se miden pipelines y se decide entre hilos de plataforma y virtual threads con datos. Al terminar sabrás escribir código funcional y concurrente que rinde y se puede razonar.

Qué aprenderás

Capacidades que adquirirás

  • Escribir código funcional idiomático con lambdas, method references e interfaces funcionales.
  • Dominar la API de streams: collectors avanzados, agrupaciones y diseño de pipelines legibles.
  • Usar Optional con criterio y conocer los límites reales de los parallel streams.
  • Programar concurrencia moderna: executors, CompletableFuture y colecciones concurrentes.
  • Aplicar virtual threads de Java 21 y decidir cuándo aportan frente a los hilos de plataforma.
Objetivos

Objetivos del curso

  1. 01Comprender las interfaces funcionales del JDK y diseñar las propias cuando convenga.
  2. 02Construir pipelines de streams eficientes, con collectors avanzados y sin abusos.
  3. 03Entender el modelo de memoria de Java: visibilidad, atomicidad y happens-before.
  4. 04Gestionar hilos con executors y componer flujos asíncronos con CompletableFuture.
  5. 05Detectar y corregir condiciones de carrera, deadlocks y contención.
  6. 06Diagnosticar problemas de rendimiento con profiling básico de la JVM.
A quién va dirigido

¿Es este curso para ti o para tu equipo?

Desarrolladores Java con experiencia que quieren dominar el estilo funcional y la concurrencia.

Desarrolladores Java con experiencia

Programadores que dominan el lenguaje y quieren profundizar en estilo funcional, concurrencia y rendimiento.

Desarrolladores backend en producción

Perfiles que mantienen servicios con problemas de concurrencia o rendimiento y necesitan diagnosticarlos.

Tech leads y revisores de código

Responsables técnicos que revisan código con streams y concurrencia y necesitan criterio sólido para evaluarlo.

Temario

Temario completo

Programa estructurado en módulos. Cada itinerario in-company se ajusta al nivel y a los objetivos concretos del equipo.

    • Interfaces funcionales del JDK: Function, Predicate, Supplier, Consumer.
    • Lambdas y method references: sintaxis, capturas y legibilidad.
    • Composición de funciones y diseño de APIs que reciben comportamiento.
    • Cuándo el estilo funcional aporta y cuándo complica.
Metodología

Cómo se imparte

Práctica desde la primera sesión

Cada bloque combina explicación, demostración y laboratorio. Los alumnos trabajan sobre casos reales aplicables a su contexto profesional.

Casos de cliente

En programas in-company partimos de los procesos y datos del cliente. La formación deja de sonar genérica y empieza a resolver problemas concretos.

Materiales de apoyo

Los participantes reciben código, plantillas y guías reutilizables tras la formación. Lo que se aprende se mantiene en el día a día.

Adaptación al nivel del equipo

Antes de impartir, hacemos un breve diagnóstico y ajustamos profundidad y ritmo. La formación no se queda corta ni avanza por encima del grupo.

Modalidades

Modalidades disponibles

Cada formato puede adaptarse al ritmo y al contexto operativo de la organización.

Online en directo

Sesiones en streaming con interacción en vivo, ejercicios guiados y resolución de dudas.

In-company

Programa diseñado a medida y impartido para un único equipo o organización.

A medida

Itinerario completamente personalizado: temario, duración, formato y casos del cliente.

Beneficios para empresas

¿Por qué contratar este programa para tu equipo?

La formación no se diseña contra un examen, se diseña contra un objetivo de negocio.

  • Mejora de productividad real en el puesto de trabajo.
  • Actualización de competencias clave para el negocio.
  • Mayor autonomía técnica y reducción de dependencia externa.
  • Aplicación práctica inmediata sobre procesos del cliente.
  • Mejor adopción tecnológica con criterios profesionales.
  • Preparación para proyectos de IA, datos, automatización o desarrollo.
Formación bonificada

¿Se puede gestionar como formación bonificada?

Este curso puede plantearse como formación para empresas y, según las condiciones de cada organización, podría gestionarse dentro de iniciativas de formación bonificada. En DatIACode te ayudamos a estructurar la propuesta formativa y la documentación necesaria para su valoración.

Requisitos previos

¿Qué necesitas saber antes de empezar?

  • Experiencia sólida con Java: POO, colecciones, genéricos y excepciones.
  • Haber trabajado en proyectos Java reales o completado el curso de Java intermedio.
  • Ordenador con JDK 21 o superior para los laboratorios de virtual threads.
Aplicaciones

Cómo se aplica lo aprendido

  • Servicios backend con cargas concurrentes de I/O intensivo.
  • Procesamiento de colecciones de datos con pipelines de streams.
  • Migración de código bloqueante a modelos asíncronos o virtual threads.
  • Diagnóstico de condiciones de carrera y problemas de rendimiento en producción.
  • Modernización de código imperativo hacia un estilo funcional legible.
DatIACode

Por qué elegir DatIACode

No vendemos formación: diseñamos programas que se traducen en capacidad operativa real.

Experiencia aplicada

Más de 20 años combinando consultoría, desarrollo y formación tecnológica para empresas de distintos sectores.

Visión de negocio

Cada programa parte de los objetivos del cliente. La técnica está al servicio del problema, no al revés.

Adaptación al equipo

Ajustamos profundidad, ritmo y casos de uso al nivel real del equipo tras un breve diagnóstico inicial.

Formación + consultoría

Si la formación destapa un proyecto, podemos acompañarte en su implantación. No abandonamos el resultado.

Especialización en IA

Trabajamos en IA aplicada todos los días. La formación no la imparte alguien que solo enseña, la imparte alguien que también construye.

Orientación a resultados

Entregables tangibles y métricas pactadas. Sin promesas vacías.

Preguntas frecuentes

FAQ

  • No. La parte de concurrencia empieza por los fundamentos (modelo de memoria, visibilidad, sincronización) antes de subir a executors, CompletableFuture y virtual threads. Lo que sí se asume es soltura con el lenguaje: este no es un curso para quien está aprendiendo Java.

Solicitar información

Cuéntanos qué necesitas

Te respondemos en menos de 24h laborables con disponibilidad, opciones de modalidad y propuesta a medida si aplica.

  • Diagnóstico inicial sin compromiso.
  • Propuesta adaptada al nivel y al sector.
  • Asesoramiento sobre formación bonificada.
Modalidad de interés*
Número aproximado de alumnos*

Información básica de protección de datos. Responsable: Datiacode Tech S.L.. Finalidad: atender tu solicitud y, si lo aceptas, enviarte comunicaciones comerciales. Legitimación: consentimiento del interesado y/o medidas precontractuales. Destinatarios: encargados de tratamiento descritos en la política. Derechos: acceso, rectificación, supresión, oposición, limitación y portabilidad escribiendo a privacidad@datiacode.com. Más información en la Política de Privacidad.

  • Ver curso
    Programación24 horas

    Java intermedio: POO, colecciones y excepciones

  • Ver curso
    Programación16 horas

    Java moderno: novedades de Java 21 a 25 LTS

  • Ver curso
    Programación30 horas

    Desarrollo backend con Java y Spring Boot

Ver todos los cursos