Newsletter Java: Novedades de la Semana 2 Abril 2025
Tu newsletter semanal de Programando En Java
✨¡Bienvenidos a otra semana de Java Weekly!
Esta semana traemos actualizaciones importantes en el ecosistema Java: lanzamiento del Jakarta EE 11 Web Profile, nueva JEP para eliminar el API de Applet, y actualizaciones de proyectos como GlassFish, Micronaut, Quarkus, TornadoVM y JHipster. Aquí tienes el resumen:
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: Diferencia entre JDK, JRE y JVM
Esta semana en mi canal de YouTube te explico la diferencia entre JDK, JRE y JVM. Para muchos es un lío estas siglas pero son muy fácil de entender y te lo explico de forma rápida en este vídeo
📢 Jakarta EE 11 Web Profile ha sido lanzado oficialmente
El nuevo Web Profile de Jakarta EE 11 ya está disponible, sumándose al Core Profile. Este perfil ha sido verificado usando GlassFish 8.0.0-M11, que ahora es compatible con esta especificación.
➡️ Más info: Hashtag Jakarta EE #275
🧪 JEP 504 (Candidate): Eliminación del Applet API
La JEP 504 ha pasado a estado Candidate. Se propone eliminar el API de Applet, ya obsoleto desde que los navegadores dejaron de soportarlo. Este API estaba deprecado desde JDK 17.
📩 Anuncio oficial: jdk-dev mailing list
🛠️ JDK 25 EA Build 17
Disponible el build 17 de JDK 25 con nuevas correcciones de bugs y mejoras internas. Puedes consultar el changelog aquí.
🔍 Participa reportando bugs en el Java Bug Database
🤩 ¡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.
🚀 TornadoVM 1.1.0
Nuevas características en TornadoVM 1.1.0, como:
Soporte para cálculos con precisión mixta (FP16 a FP32)
Nuevo método
mapOnDeviceMemoryRegion()
para mapear buffers de memoria en el dispositivo
📄 Release Notes: TornadoVM 1.1.0
🌐 Micronaut 4.8.0
Nueva versión del framework Micronaut con:
Mejoras en SourceGen para generación de bytecode
Activación de trazado de inyección de dependencias
Múltiples actualizaciones de módulos
📄 Release notes: Micronaut 4.8.0
💥 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.

🧬 Quarkus 3.21.1
Lanzamiento de mantenimiento con mejoras como:
Soporte de anotaciones
@Blocking
,@NonBlocking
en métodos con@Resolver
de SmallRye GraphQLCorrección de errores al usar TLS con ALPN
📄 Release notes: Quarkus 3.21.1
💻 JHipster 8.10.0 y JHipster Lite 1.31.0
JHipster incluye:
Solución a
ClassCastException
con Spring Boot y HazelcastUpgrade a Spring Boot 3.4.4
Mejoras internas
Upgrade de Vite a 6.2.4
Corrección de 2 vulnerabilidades CVE relacionadas con el acceso al sistema de archivos
💡 Tip en Java de la Semana: Usa String.format()
para alinear y formatear texto como un pro
String.format()
no solo es útil para insertar variables en texto, también puedes alinear, rellenar y dar formato numérico o de fecha de forma muy controlada.
Formateo de Números
double precio = 1234.56789;
System.out.println(String.format("Precio: %.2f €", precio));
🧾 Salida:
Precio: 1234.57 €
%.2f
: muestra solo 2 decimales (redondea automáticamente).
También puedes usar separadores de miles:
System.out.println(String.format("Balance: %,d €", 1000000));
🧾 Salida:
Balance: 1,000,000 €
Formateo de Fechas
import java.util.Date;
Date now = new Date();
System.out.println(String.format("Fecha: %1$td/%1$tm/%1$tY", now));
🧾 Salida:
Fecha: 11/04/2025
%1$td
: día%1$tm
: mes%1$tY
: año
El 1$
indica que estamos usando el primer argumento (now
) varias veces.
Usar con Locale
Si necesitas separar con coma decimal (por ejemplo en español), puedes usar:
import java.util.Locale;
System.out.println(String.format(Locale.GERMANY, "Precio: %.2f €", 1234.56));
🧾 Salida:
Precio: 1234,56 €
📩 Si te ha gustado esta edición, compártela con otros desarrolladores y nos vemos la próxima semana con más novedades.
¡Feliz coding! 🚀
Ricardo