La mayoría de quien "sabe Java" aprendió el Java de hace quince años y sigue escribiéndolo así. Este curso va de lo que cambió —records, sealed, pattern matching en switch, Optional, streams, hilos virtuales— y de las trampas que siguen tumbando servicios en producción: la igualdad sin hashCode, el caché de Integer, los efectos secundarios en streams paralelos y los bugs de visibilidad entre hilos, que no son carreras y por eso cuestan tanto de encontrar. Once módulos y trece ejercicios. Todo el material usa Java 21 o superior.
Temario 目次
Nivel 1 — Datos
Records, igualdad y nullJava 21, qué es real aquí y comprobación del entorno.
La clase de 60 líneas que ahora son 3, el constructor compacto y la copia defensiva.
El caché de Integer y el bug de equals sin hashCode, que solo aparece con HashSet.
El error de mil millones de dólares, gestionado. Y el NPE que no tiene ningún null escrito.
Nivel 2 — Expresividad
Streams, sealed y coleccionesDeclarativo y perezoso, con sus dos trampas: efectos secundarios y parallelStream gratis.
Que el compilador te avise si olvidas un caso. Tipos algebraicos en Java.
Elegir por complejidad, no por costumbre. Con la ConcurrentModificationException clásica.
Nivel 3 — Producción
Concurrencia y recursosHilos virtuales, el modelo de memoria y un bug de visibilidad que el synchronized vecino no arregla.
El recolector recoge objetos, no descriptores de archivo. try-with-resources y fugas reales.
Nivel 4 — Cierre
Pruebas y proyectoParametrizadas, excepciones y nombres que se leen como una especificación.
Un dominio pequeño bien modelado: sealed, records y un switch exhaustivo sin default.
Por qué ves candados. El acceso no se deduce de una orden pagada sino de un entitlement activo, y esta sesión no tiene uno para este curso. Entra como ana@criswily.local para verlo desbloqueado y como bruno@criswily.local para comprobar que el bloqueo es real — los dos son del mismo tenant, así que la diferencia no la puede hacer el aislamiento por tenant.
