Lanzamiento oficial de Java 25 / JDK 25
(openjdk.org)- Java 25 y su implementación de referencia JDK 25 fueron lanzados oficialmente
- Esta versión incluye 18 nuevas funciones JEP (Java Enhancement Proposal)
- Se aplicaron cambios importantes como la eliminación del port de x86 de 32 bits, Scoped Values, Structured Concurrency y mejoras en Primitive Types
Java 25 / JDK 25: lanzamiento oficial
- JDK 25, es decir, la implementación de referencia de Java 25, fue lanzado oficialmente como versión de distribución para producción
- El 15 de agosto de 2025 se publicó build 36, el segundo release candidate, y desde entonces no se han reportado bugs críticos (P1).
- build 36 es la versión final GA (General Availability), por lo que también puede usarse en entornos operativos
- Oracle distribuye oficialmente el build de OpenJDK basado en licencia GPL, y también se espera pronto la publicación de versiones compiladas por varios otros proveedores
Enlace oficial de descarga de OpenJDK
Funciones y mejoras principales
Esta release incluye 18 JEP (Java Enhancement Proposal)
- 470: Codificación de objetos criptográficos basada en PEM (preview)
- 502: Stable Values (preview)
- 503: Eliminación del port de x86 de 32 bits
- 505: Structured Concurrency (quinta preview)
- 506: Scoped Values
- 507: Soporte para Primitive Types en pattern, instanceof y switch (tercera preview)
- 508: Vector API (décima versión incubadora)
- 509: Perfilado de tiempo de CPU con JFR (función experimental)
- 510: Key Derivation Function API
- 511: Declaraciones Module Import
- 512: Compact Source Files y métodos main de instancia
- 513: Flexible Constructor Bodies
- 514: Optimización de línea de comandos Ahead-of-Time
- 515: Perfilado de métodos Ahead-of-Time
- 518: Muestreo cooperativo de JFR
- 519: Compact Object Headers
- 520: Temporización y trazado de métodos con JFR
- 521: Generational Shenandoah
Además de los JEP anteriores, esta release también incorpora cientos de pequeñas mejoras funcionales y miles de correcciones de bugs
Para más información sobre esta release y los detalles de cada JEP, consulta la
página del proyecto OpenJDK JDK 25
3 comentarios
El mismo de siempre que vino el año pasado ni muerto deja de volver, ea, que siga el ritmo... ¿por qué sigues apareciendo una y otra vez?
Es una función que llegó en JDK 24, pero como en Java hay una fuerte tendencia a usar solo las versiones LTS, también vale la pena prestar atención a que con JEP 491: Synchronize Virtual Threads without Pinning ya no se produce el fenómeno de pinning de los hilos virtuales al usar la palabra clave
synchronized.A veces los benchmarks de hilos virtuales en entornos reales daban resultados más lentos, y en la mayoría de los casos la causa era el pinning.
Opiniones de Hacker News
venv.superen el constructor. Siempre me pareció algo contrario a la intuición.staticpara el proceso de validación dentro de los parámetros desuper, en la práctica igual se llamaba antes desuper, así que al compilador no le molestaba.importde módulos. Sintaxis comoimport *hace que escribir código sea fácil, pero leerlo sea mucho más difícil, especialmente para desarrolladores que no conocen el lenguaje o el codebase. C# y Nim también tienen ese estilo, y sin un IDE casi no puedo leerlos. Por eso prefiero ejemplos de alias cortos como en Python (import torch.nn.functional as F).importes “¿de dónde vino eso?”. Losimportexplícitos son imprescindibles, sobre todo cuando se rompe el build o hay confusión con versiones de dependencias. En codebases pequeñas, da igual lo que uses. Además, los editores modernos suelen ocultar losimport, así que casi nunca los ves directamente; normalmente solo haces clic en el código o usas un atajo para ir a la definición, así que no les presto mucha atención.csprojoslnen VSCode. Por cierto, Visual Studio se puede comprar aquí por $500 con licencia perpetua, sin necesidad de una suscripción aparte.god-classogod-object.guicesí necesitó una actualización mayor. Por cierto, creo que también ayudó haber usado otro lenguaje de la JVM en vez de Java.sun, y pasar dejavaxajakartatambién fue una carga. Pero una vez superada esa etapa, sentimos que ir a 21 o 25 es fácil. Espero que seguir versiones recientes de forma constante sea más llevadero que antes.NullPointerExceptionsigue siendo común. Si no te gusta Kotlin, C# también está bien. Aun así, Java sigue siendo perfectamente utilizable.