Newsletter Java: Novedades de la Semana 3 Marzo 2025
Tu newsletter semanal de Programando En Java
¡Hola Javero/a! 👋
Este año es especial: ¡Java cumple 30 años! 🎉 Tres décadas de innovación, evolución y consolidación como uno de los lenguajes más sólidos del ecosistema. Pero eso no es todo… ¡también celebramos el 3º aniversario de Programando En Java en YouTube! 🎥
Para conmemorar estos hitos, en esta edición exploramos las novedades de Java 24, incluyendo mejoras clave en rendimiento, seguridad y productividad. Además, veremos las actualizaciones más recientes de Spring Boot e IntelliJ IDEA, y discutiremos si ya es momento de actualizar tu stack.
Si quieres estar al día con lo último en Java y Spring Boot, ¡sigue leyendo! 👇
Redes Sociales
📘 Facebook: Programando en JAVA
🐦 X (Twitter): ProgEnJava
📸 Instagram: Programando en Java
💼 LinkedIn: Ricardo Romero Benítez
▶️ YouTube: Programando en Java
🎵 TikTok: Programando en Java
🧵 Threads: Programando en Java
💬 Discord: Comunidad de Programando en JAVA
🎥 Video de la Semana en YouTube: JAVA 24 ¡SUS NUEVAS FUNCIONALIDADES!
Java 24 ya está aquí y trae cambios que pueden impactar directamente en cómo desarrollamos aplicaciones. En este video te explico las novedades más importantes, incluyendo:
Si quieres saber si vale la pena actualizar y cómo estas mejoras pueden afectar tu código, no te pierdas el video. 🔥
🚀 Novedades de la Semana en Java
Lanzamiento de Java 24
Oracle ha lanzado la versión Java 24, el tercer lanzamiento no-LTS desde JDK 21. Este nuevo release incluye 24 JEPs entre las que destacan:
JEP 472: Prepare to Restrict the Use of JNI
JEP 485: Stream Gatherers
JEP 487: Scoped Values (Fourth Preview)
JEP 497: Quantum-Resistant Module-Lattice-Based Digital Signature Algorithm
Puedes ver el listado completo de las mejoras en el blog oficial de Oracle.
☕ Java 24 en detalle
Generational Shenandoah (Experimental)
JEP 404 introduce un modo experimental generacional para el recolector de basura Shenandoah, con la intención de hacerlo el modo predeterminado en futuras versiones de JDK.
Compact Object Headers (Experimental)
JEP 450 reduce el tamaño de los encabezados de objetos en la JVM HotSpot de 96-128 bits a 64 bits en arquitecturas de 64 bits, optimizando el uso de memoria.
Stream Gatherers
JEP 485 finaliza esta funcionalidad tras dos rondas de preview, permitiendo operaciones intermedias personalizadas en el API de Streams de Java.
Ahead-of-Time Class Loading & Linking
JEP 483 mejora el tiempo de inicio de las aplicaciones precargando y enlazando clases de forma anticipada en la JVM.
Quantum-Resistant Module-Lattice-Based Digital Signature Algorithm
JEP 497 introduce algoritmos de firma digital resistentes a la computación cuántica para mejorar la seguridad de las aplicaciones Java.
🤩 ¡Tu opinión importa!
¡Ayúdame a mejorar esta newsletter!. Responde esta encuesta (menos de 1 minuto) para contarme qué temas prefieres y cómo puedo mejorarla.
🔍 OpenJDK: JEPs y Actualizaciones para JDK 25
JEP 502 – Stable Values (Preview)
Este JEP, antes conocido como Computed Constants (Preview), ha sido elevado de Proposed to Target a Targeted para JDK 25. Introduce el concepto de computed constants: contenedores inmutables que se inicializan una única vez. Esto combina los beneficios de los camposfinal
con una mayor flexibilidad en el momento de la inicialización, ¡ideal para optimizar el rendimiento de tu aplicación!JEP 503 – Remove the 32-bit x86 Port
Ahora ha pasado de Candidate a Proposed to Target para JDK 25. Este cambio propone eliminar el soporte para el puerto de 32-bit x86, siguiendo la deprecación iniciada en JEP 501. Se espera que la revisión finalice el 18 de marzo de 2025, marcando el fin de una era para arquitecturas antiguas.
💥 Construye tu Backend en Minutos, No en Semanas
¿Cansado de perder tiempo construyendo infraestructura? ¡Déjalo en mis manos! Con Spring Boot JWT Starter Pack podrás lanzar tu backend YA.
✅ Autenticación segura con JWT
✅ Gestión de roles sin dolor de cabeza
✅ API documentada y lista para producción
✅ Compilación nativa para rendimiento superior
🚀 Menos configuración. Más código que importa.

🎓 DOMINA Java y Spring Boot desde cero
¿Cansado de tutoriales aburridos que no van al grano? Estos cursos no son para quienes solo quieren "mirar código", sino para quienes quieren escribirlo como un PRO.

🌐 Jakarta EE y GlassFish
Jakarta NoSQL 1.0:
¡Gran hito! Jakarta NoSQL 1.0 ha pasado su revisión y ya está disponible. Este lanzamiento mejora la productividad en operaciones NoSQL mediante una interfazTemplate
renovada, elimina APIs ahora gestionadas en Jakarta Data y añade nuevas anotaciones como@MappedSuperclass
y@Embeddable
.GlassFish 7.0.23:
La vigésimo tercera versión de mantenimiento trae correcciones, mejoras en las conexiones SSH en Linux y Windows y soporte para la propiedadorg.glassfish.envPreferredToProperties
para priorizar variables de entorno en las opciones JVM. Más detalles en las release notes.
🛠️ Spring Framework y Ecosistema Spring
Spring Framework 7.0.0 M3:
La tercera milestone de Spring Framework 7.0.0 ya está disponible, con soporte para el registro dinámico de beans a través del nuevoBeanRegistrar
y mejoras en el manejo deOptional
en SpEL, junto con actualizaciones en documentación y dependencias. Revisa las release notes.Spring Modulith:
La nueva versión de Spring Modulith 1.4.0 (segunda milestone) introduce abstracciones como ApplicationModuleIdentifiers y ApplicationModuleMetadata, facilitando la gestión de módulos en la infraestructura de tu aplicación. Además, las versiones de servicio 1.3.3 y 1.2.9 incluyen correcciones y mejoras que fortalecen el framework.
🧰 Maven 4.0 y LangChain4j
Maven 4.0 RC3:
La tercera versión candidata de Maven 4.0 presenta cambios clave, como la migración dejavax.inject
a la nueva Maven Dependency Injection, soporte para${project.rootDirectory}
y mejoras en la validación del modelo. Consulta las release notes.LangChain4j 1.0 Beta 2:
La segunda beta de LangChain4j 1.0 trae una migración hacia el uso de la claseHttpClient
de Java, soporte para la OpenAI Java Library y la eliminación de métodos obsoletos en las interfaces de chat e IA. Más información en las release notes.
💡 Tip en Java de la Semana: Usa Scoped Values para Transmitir Datos de Forma Segura
Los Scoped Values son una novedosa característica en Java 24 que te permiten compartir datos de forma segura entre tareas concurrentes, sin los inconvenientes del ThreadLocal. Con ellos, puedes definir un ámbito claro para ciertos valores, asegurando que se utilicen únicamente dentro del contexto que tú determines.
Ejemplo:
public class ScopedValueExample {
// Declaramos un ScopedValue para almacenar el usuario actual
static final ScopedValue<String> currentUser = ScopedValue.newInstance();
public static void main(String[] args) {
// Asigna el valor "admin" al ScopedValue en este bloque
ScopedValue.where(currentUser, "admin", () -> {
process();
});
}
static void process() {
// Dentro de este bloque, currentUser.get() retorna "admin"
System.out.println("Current user: " + currentUser.get());
}
}
Beneficios:
Alcance bien definido: El valor solo es accesible dentro del bloque donde se establece, lo que reduce riesgos de fugas o accesos indebidos.
Menos sobrecarga que ThreadLocal: Mejora el rendimiento al evitar problemas comunes con los ThreadLocal.
Facilita la programación concurrente: Ideal para compartir datos de contexto sin complicaciones adicionales.
¡Experimenta con Scoped Values y descubre una nueva forma de gestionar datos en entornos concurrentes!
¡Eso es todo por esta semana! Espero que disfrutes de estas actualizaciones y sigas comprobando que el ecosistema Java se reinventa constantemente para ofrecerte las mejores herramientas y tecnologías. ¡Nos vemos en la próxima edición con más noticias, tips y recursos!
¡Feliz programación y que tengas una excelente semana! 🚀💻🎉
Ricardo
P.D.: Si te ha gustado esta newsletter, ¡compártela con otros desarrolladores y ayúdanos a hacer crecer nuestra comunidad! 😊👍