¿Está tu código preparado para los cambios de Java que vienen en 2026? Proyectos como Valhalla y Loom prometen revolucionar el rendimiento y la gestión de memoria. El proyecto Babylon te ayudará a usar Java para otros lenguajes y plataformas. Pero hay muchas cosas más. Descubre cómo estas mejoras cambiarán tu forma de programar en Java en 2026 y más adelante.

El ecosistema Java está en plena ebullición y 2026 se perfila como un año crucial. No se trata solo del par de nuevas versiones que lanzan cada año, que suelen traer pocas cosas en versión estable definitiva, sino de la finalización de proyectos dentro de Java que llevan años desarrollándose. Si eres desarrollador, necesitas saber qué viene para prepararte.
La OpenJDK ha revelado sus planes y los tres pilares de la evolución del lenguaje (Valhalla, Loom y Amber) están alcanzando puntos de inflexión. Además, otros proyectos dentro del JDK verán avances relevantes también.
Hoy te presentamos un resumen de lo más importante que se espera en Java para 2026, una especie de "roadmap" de qué esperar este año (y un poquito del que viene).
Información clave del artículo:
- Project Valhalla optimiza la memoria mediante tipos por valor y genéricos especializados de alto rendimiento.
- Marcadores de nulidad garantizan seguridad en tiempo de ejecución evitando errores de puntero nulo.
- Type Classes permiten escribir código genérico avanzado para operaciones matemáticas y tipos de datos complejos.
A medida que se acerquen sus lanzamientos iremos sacando artículos que profundicen en cada tema, así que suscríbete por RSS o a nuestro boletín mensual gratuito si quieres estar al día.
Project Valhalla (tipos por valor):
El proyecto Valhalla es un esfuerzo del equipo de OpenJDK para introducir tipos por valor, genéricos especializados y representaciones de memoria más eficientes en la JVM para mejorar el rendimiento y la seguridad de tipos.
Aunque parece que no llegarán finalmente con el JDK 27 (el último de este año), por lo visto sí van a aparecer por fin con el JDK 28 en la primera mitad de 2027. Pero en 2026 podremos probar a fondo sus capacidades gracias a las versiones de acceso temprano (EA) que aparecerán en los JDK 26 u 27.
En 2026 veremos:
- JEP 401 (Tipos por Valor): se trata de clases que no tienen identidad (solo datos). Esto permite que la JVM optimice el almacenamiento en memoria, eliminando la sobrecarga de los punteros y permitiendo el "aplanamiento" de datos.
- Unificación de tipos primitivos: se trabaja en que los tipos primitivos (
int, double...) y sus envoltorios (Integer, Double...) se comporten de manera más uniforme gracias a los tipos por valor.
- Marcadores de Nulidad: una vez establecidos los tipos de valor, el siguiente paso son los marcadores de nulidad para permitir que la JVM sepa cuándo un valor no puede ser nulo y optimizar aún más su representación física. El prototipo "Bang World" (eWorld)](https://github.com/openjdk/valhalla/tree/bworld) aborda los marcadores de nulidad (
!, presentes en otros lenguajes como Kotlin, JavaScript o C#) con una diferencia importante respecto a la implementacion que hay en Kotlin: la JVM lo hará cumplir en tiempo de ejecución. O sea, podrás marcar tipos con ! (por ejemplo, String!) para indicar una barrera de no-nulo. El compilador generará llamadas a una nueva API (java.lang.runtime.Checks) para que la JVM pueda tratar estas comprobaciones de forma especial. Una conversión a String! lanzará una excepción si le pasas null. Los arrays declarados con ![] rechazarán también escrituras de null dinámicamente. Esto no solo será una ayuda para el compilador, sino que será una garantía también en tiempo ejecución.
Type Classes: la ambición oculta de Valhalla
Además de todo eso, el equipo de Valhalla está experimentando con Type Classes, un concepto tomado del lenguaje funcional Haskell. ¿Su objetivo?: permitir escribir código matemático genérico que funcione con tipos primitivos (por ejemplo int), tipos boxed (como BigDecimal) y futuros tipos de valor de Valhalla.
Las Type Classes invierten la relación de las interfaces: en lugar de que el tipo implemente la interfaz, tú proporcionas un "witness" (testigo) externo que dice cómo realizar una operación (como la suma) para ese tipo. Esto podría habilitar la sobrecarga de operadores para tipos de valor sin caer en el abuso de la sobrecarga de operadores, que ocurre cuando los desarrolladores sobrecargan demasiados operadores (como +, *, <<, etc.) para realizar acciones que no son intuitivas o que no guardan relación con la semántica original del operador. Esto resulta en un código que es difícil de leer, mantener y depurar, ya que un simple símbolo puede ejecutar una lógica compleja y oculta detrás de la sintaxis.
Está (un poco más) explicado en el pull request original en Valhalla, que ahora está en el estado "Integrado", lo que quiere decir que forma parte ya de la rama principal de Valhalla.
Project Babylon: la revolución de la "reflexión de código" en Java
Este es uno de los añadidos más potentes al roadmap de 2026. El Proyecto Babylon busca extender Java a modelos de programación "foráneos", o sea, a otros lenguajes que no tienen nada que ver.
Para ello utilizarán reflexión de código que, a diferencia de la reflexión tradicional (que permite examinar las clases), posibilita que un framework (como Hibernate o una librería de Machine Learning) analice el cuerpo de un método o una lambda, lo "entienda" y lo transforme en otro lenguaje (como SQL o CUDA) antes de ejecutarlo.
Al hilo de lo anterior, se están desarrollando pruebas de concepto para ejecutar modelos de Machine Learning directamente en la GPU usando código Java estándar, transformado mediante Babylon.
Algo muy potente sin duda a lo que seguirle la pista este año.
Proyecto Leyden: compilación AOT en Java
Este es un proyecto de la comunidad que está atacando el talón de Aquiles de Java en entornos cloud: el tiempo que tarda la JVM en "calentarse" y ser eficiente. Su objetivo es construir una JVM más ligera y modular reduciendo su tamaño y su tiempo de arranque, y está pensado para optimizar Java de cara a contenedores y entornos cloud-native, manteniendo compatibilidad con el resto del ecosistema.
La compilación Ahead-of-Time (AOT) mejorará este año gracias a este proyecto Leyden. En el próximo JDK 26, la caché no solo almacenará clases sino también código máquina compilado, lo que reducirá drásticamente el tiempo de calentamiento (warmup time) de las aplicaciones.
Además se introducirá una opción para que esta caché de código sea "agnóstica" al recolector de basura, permitiendo mayor portabilidad entre diferentes configuraciones.
Project Loom: concurrencia estructurada (la pieza que faltaba)
Esto sí que se espera que esté terminado durante 2026. Tras la revisión incluida en el JDK 25, la API pasará por una fase preview con cambios mínimos y saldrá definitiva seguramente con Java 27. Es la pieza final del gran puzle que es el proyecto Loom, la iniciativa para añadir virtual threads y continuaciones a la JVM, facilitando la concurrencia escalable y simplificando mucho la programación asíncrona.
Incroporará:
- Concurrencia estructurada: esta API permite gestionar grupos de tareas relacionadas como una única unidad, facilitando la propagación de errores y la cancelación de hilos. Se espera que esté finalizada oficialmente en el JDK 27 a finales de año.
- Scoped Values: junto con la concurrencia estructurada, los Scoped Values (valores con ámbito) ofrecen una alternativa más moderna y segura a los
ThreadLocal, especialmente útil cuando manejamos millones de hilos virtuales.
Project Amber: patrones
Este proyecto intenta mejorar la productividad del lenguaje Java mediante pequeñas (pero potentes) características como records, coincidencia de patrones (pattern matching) y mejoras en las expresiones lambda que hacen el código más conciso y expresivo.
Este año se esperan borradores de JEPs para dos características clave:
- Pattern Assignment (asignación por patrones): permitirán la deconstrucción incondicional de objetos. Por ejemplo, extraer los componentes de un
Record directamente en una asignación sin necesidad de un instanceof.
- Constant & Primitive Patterns: se espera que los patrones constantes (poder usar constantes en
switch de forma más inteligente) y los patrones para tipos primitivos se lancen juntos, mejorando enormemente la legibilidad del código de lógica de negocio.
Estas dos características simplificarán enormemente la coincidencia de patrones.
También se investiga cómo llevar las ventajas de los records (inmutabilidad y deconstrucción) a las clases e interfaces tradicionales para facilitar la refactorización de código heredado.
Vector API
La API Vectorial de Java está diseñada para que podamos expresar cálculos vectoriales de forma que puedan compilarse en instrucciones vectoriales óptimas y mejorar mucho el rendimiento en CPUs modernas (con SIMD). Permite el procesamiento en paralelo de datos, lo que la hace especialmente útil para operaciones numéricamente intensivas.
Esta API está esperando a Valhalla. Verá su undécima incubación en el JDK 26 y se reescribirá y moverá al paquete Java adecuado una vez que los tipos de valor de Valhalla aterricen.
Conclusión: la estabilización funcional
Lo que vemos de cara a 2026 es un Java que toma ideas brillantes de lenguajes funcionales (Haskell, Erlang) o de lenguajes como C++ y las somete a un proceso de estabilización riguroso.
La mayor fortaleza de Java sigue siendo su conservadurismo pragmático: las nuevas características, por muy revolucionarias que sean, se diseñan para ser compatibles con los miles de millones de líneas de código Java existentes.
En 2026, Java no solo será más rápido y ligero para la nube, sino también un lenguaje mucho más expresivo y seguro para el desarrollador diario.
Fechas clave a recordar:
- JDK 26: 17 de marzo de 2026 con AOT, HTTP3, y previews de varias cosas (concurrencia estructurada, vector API p coincidencia de patrones) .
- JDK 27: 15 de septiembre de 2026 (fase final de Loom/Amber).
- JDK 28: 23 de marzo de 2027, para los interesados en la versión final Valhalla.