Nueva versión entrega 24 Propuestas de Mejora de JDK que ayudan a los desarrolladores a maximizar su productividad y mejorar el lenguaje Java
Mejoras en el rendimiento, estabilidad y seguridad de la plataforma ayudan a las organizaciones a acelerar su crecimiento empresarial
Nuevas características en apoyo de la IA y la criptografía post-cuántica se destacarán en la conferencia JavaOne 2025
AUSTIN, Texas—18 de marzo de 2025
Oracle anunció hoy que ya está disponible Java 24, la última versión del lenguaje de programación y la plataforma de desarrollo número uno del mundo. Java 24 (Oracle JDK 24) entrega miles de mejoras para ayudar a los desarrolladores a maximizar la productividad y fomentar la innovación. Además, las mejoras en el rendimiento, estabilidad y seguridad de la plataforma ayudan a las organizaciones a acelerar su crecimiento empresarial. Descubre más sobre la última versión de Java 24 en la conferencia JavaOne 2025 en Redwood Shores, CA, del 18 al 20 de marzo de 2025.
“A medida que Java se acerca a su 30º aniversario más adelante este año, sigue ampliando su conjunto de herramientas para satisfacer las necesidades cambiantes de los desarrolladores, incluidas capacidades que apoyan el desarrollo de aplicaciones basadas en IA”, dijo Arnal Dayaratna, vicepresidente de investigación, desarrollo de software, IDC. “La amplia gama de capacidades en la nueva versión ayudará a aumentar la productividad de los desarrolladores, permitiéndoles entregar aplicaciones ricas en funciones a sus organizaciones y clientes más rápido y de manera más eficiente. La versión Java 24 subraya que Java es incomparable para el desarrollo de aplicaciones empresariales de gran escala y esenciales".
“En los últimos 30 años, Java ha proporcionado a los desarrolladores una plataforma integral para construir y desplegar aplicaciones que aborden una amplia gama de casos de uso,” dijo Georges Saab, vicepresidente senior, Oracle Java Platform y presidente de la junta directiva de OpenJDK. “Con más de 20 nuevas características que abarcan cada elemento de Java, incluidas nuevas capacidades de IA y criptografía post-cuántica, la versión Java 24 brinda a los desarrolladores las herramientas necesarias para crear aplicaciones innovadoras impulsadas por IA. Como administradores de Java, estamos emocionados de trabajar con la comunidad global de Java para seguir entregando una constante corriente de nuevas características a través de nuestra cadencia predecible de seis meses".
Características de lenguaje
JEP 488: Tipos Primitivos en Patrones, instanceof y switch (Segunda vista previa): ayuda a los desarrolladores a aumentar la productividad en la programación de Java al hacer que el lenguaje sea más uniforme y expresivo. Esta característica ayuda a los desarrolladores a mejorar la coincidencia de patrones al eliminar restricciones relacionadas con los tipos primitivos que los desarrolladores encuentran al usar coincidencia de patrones, instanceof y switch. También permite patrones de tipo primitivo en todos los contextos de patrones y extiende instanceof y switch para trabajar con todos los tipos primitivos. Los desarrolladores de aplicaciones que integran inferencia de IA se beneficiarán especialmente del soporte de tipos primitivos.
JEP 492: Flexible Constructor Bodies (Tercera vista previa): ayuda a los desarrolladores a mejorar la confiabilidad del código mediante la introducción de dos fases distintas de prólogo y epílogo en un cuerpo de constructor. Esto permite a los desarrolladores colocar más naturalmente la lógica que actualmente deben factorizar en métodos estáticos auxiliares, constructores intermedios auxiliares o argumentos de constructor. Además, preserva la protección existente de que el código en un constructor de subclase no puede interferir con la instanciación de la superclase, lo que resulta en una clase más confiable cuando se sobrescriben métodos.
JEP 494: Module Import Declarations (Segunda vista previa): ayuda a los desarrolladores a mejorar la productividad al permitirles importar rápida y fácilmente todos los paquetes exportados por un módulo, sin que el código de importación deba estar en un módulo por sí mismo. Esto simplifica el uso de bibliotecas modulares para todos los desarrolladores y ayuda a los principiantes a utilizar más fácilmente bibliotecas de terceros y clases fundamentales de Java sin necesidad de aprender dónde se encuentran en una jerarquía de paquetes. Esta característica también beneficia a los desarrolladores que buscan integrar rápidamente la lógica empresarial con inferencia nativa de IA, bibliotecas o llamadas a servicios.
JEP 495: Simple Source Files and Instance Main Methods (Cuarta vista previa): ayuda a los estudiantes a escribir sus primeros programas sin necesidad de comprender características del lenguaje diseñadas para programas grandes, ofreciendo una suave introducción a la programación en Java. Como resultado, los educadores y los instructores pueden introducir conceptos gradualmente, y los estudiantes pueden escribir declaraciones simplificadas para programas de una sola clase y expandir sus programas sin problemas con características más avanzadas a medida que sus habilidades crecen. Además, los desarrolladores experimentados de Java pueden escribir programas pequeños de manera concisa y eficiente sin necesidad de usar herramientas diseñadas para proyectos más grandes.
Bibliotecas
JEP 485: Stream Gatherers: ayuda a los desarrolladores a ser más eficientes en la lectura, escritura y mantenimiento de código Java al mejorar la API de Streams para admitir operaciones intermedias personalizadas, que permiten que las canalizaciones de streams transformen datos de maneras que no son fácilmente alcanzables con las operaciones intermedias integradas existentes.
JEP 484: Class-File API: ayuda a los desarrolladores a mejorar la productividad al proporcionar una API estándar para analizar, generar y transformar archivos de clase Java y seguir el formato de archivo de clase definido por la especificación de Java Virtual Machine.
JEP 487: Scoped Values (Cuarta vista previa): ayuda a los desarrolladores a aumentar la facilidad de uso, comprensión, rendimiento y robustez de sus proyectos al permitir el intercambio de datos inmutables dentro y entre hilos.
JEP 489: Vector API (Noveno incubador): ayuda a los desarrolladores a mejorar la productividad al introducir una API para expresar cálculos vectoriales que se compilen de manera confiable en tiempo de ejecución a instrucciones vectoriales en arquitecturas de CPU compatibles. Como resultado, los desarrolladores pueden lograr un rendimiento superior al de los cálculos escalares equivalentes, que se usan con frecuencia en inferencia de IA y escenarios de cómputo.
JEP 499: Structured Concurrency (Cuarta vista previa): Ayuda a los desarrolladores a mejorar el mantenimiento, confiabilidad y observabilidad de código multihilo al simplificar la programación concurrente a través de una nueva API para concurrencia estructurada. Al tratar grupos de tareas relacionadas que se ejecutan en diferentes hilos como una única unidad de trabajo, la concurrencia estructurada puede ayudar a reducir riesgos comunes derivados de la cancelación y cierre, como fugas de hilos y demoras en la cancelación.
Bibliotecas de seguridad
JEP 478: Key Derivation Function API (Vista previa): ayuda a los desarrolladores a prepararse para los entornos emergentes de computación cuántica al ofrecer seguridad criptográfica para datos en tránsito. Esto mejora la confidencialidad e integridad de las comunicaciones.
JEP 496: Quantum-Resistant Module-Lattice-Based Key Encapsulation Mechanism: ayuda a aumentar la seguridad de las aplicaciones Java al proporcionar una implementación del Mecanismo de Encapsulación de Claves Basado en Módulo-Lattice Resistente a la Cuántica (ML-KEM). Esta característica es un paso importante hacia la preparación para la poscuántica y el eventual soporte de criptografía poscuántica (PQC) para la plataforma Java, ya que los mecanismos de encapsulación de claves se utilizan para asegurar claves simétricas a través de canales de comunicación inseguros utilizando criptografía de clave pública.
JEP 497: Quantum-Resistant Module-Lattice-Based Digital Signature Algorithm: ayuda a aumentar la seguridad de las aplicaciones Java al proporcionar una implementación del Module-Lattice-Based Digital Signature Algorithm (ML-DSA). Al igual que con JEP 496, esta característica es un paso importante hacia la preparación para la post-cuántica y el eventual soporte de PQC para la plataforma Java, ya que las firmas digitales se utilizan para detectar modificaciones no autorizadas de datos y autenticar la identidad de los firmantes. ML-DSA está diseñado para ser seguro contra futuros ataques de computación cuántica y ha sido estandarizado por el Instituto Nacional de Estándares y Tecnología de Estados Unidos (NIST) en FIPS 204.
Herramientas
JEP 493: vinculación de Imágenes de Tiempo de Ejecución sin JMODs: Ayuda a los desarrolladores a aumentar la eficiencia al permitir que la herramienta jlink cree imágenes de tiempo de ejecución personalizadas sin usar los archivos JMOD del JDK, lo que puede reducir el tamaño del JDK en aproximadamente un 25 %. Como resultado, los desarrolladores pueden vincular una imagen de tiempo de ejecución desde módulos sin importar si esos módulos son archivos JMOD independientes, archivos JAR modulares o parte de una imagen de tiempo de ejecución previamente vinculada. Esta característica debe habilitarse cuando se construye el JDK; no estará habilitada por defecto y algunos proveedores de JDK pueden optar por no habilitarla.
Actualizaciones de rendimiento y tiempo de ejecución
JEP 450: Compact Object Headers (Experimental): ayuda a los desarrolladores a aumentar la productividad reduciendo el tamaño de los encabezados de objetos en la JVM HotSpot de entre 96 y 128 bits a 64 bits en arquitecturas de 64 bits. Esto ayuda a reducir el tamaño de la pila, mejorar la densidad de despliegue y mejorar la ubicación de los datos.
JEP 475: Late Barrier Extension for G1: ayuda a los desarrolladores a aumentar la eficiencia al trasladar la expansión de las barreras del recolector de basura G1 de la compilación temprana en la tubería de compilación C2 JIT a una fase posterior, lo que puede reducir la sobrecarga si ocurre después de optimizaciones independientes de la plataforma y la asignación de registros. Al simplificar la implementación de las barreras del recolector de basura G1, esta característica ayuda a aumentar la eficiencia, comprensión, resiliencia y calidad del código generado por C2.
JEP 483: Ahead-of-Time Class Loading & Linking: ayuda a los desarrolladores a aumentar la productividad y mejorar el tiempo de inicio al hacer que las clases de una aplicación estén instantáneamente disponibles en un estado cargado y vinculado cuando se inicia HotSpot Java Virtual Machine. Esta característica no requiere el uso de las herramientas jlink o jpackage, y no requiere ningún cambio en la forma en que las aplicaciones se inician desde la línea de comandos ni ningún cambio en el código de aplicaciones, bibliotecas o marcos. Como resultado, ayuda a sentar las bases para mejoras continuas en el tiempo de inicio y calentamiento.
JEP 490: ZGC: eliminar el modo no generacional: ayuda a los desarrolladores a reducir el costo de mantenimiento al eliminar el modo no generacional del recolector de basura Z (ZGC).
JEP 491: sincronizar hilos virtuales sin fijación: ayuda a los desarrolladores a aumentar la productividad al extender la escalabilidad del código Java y bibliotecas que usan métodos y declaraciones sincronizadas. Al permitir que los hilos virtuales liberen sus hilos de plataforma subyacentes, esta característica da a los desarrolladores acceso a más hilos virtuales para gestionar las cargas de trabajo de sus aplicaciones.
Código fuente
JEP 404: Generational Shenandoah (Experimental): ayuda a los desarrolladores a aumentar la productividad mejorando el recolector de basura Shenandoah con capacidades experimentales de recolección generacional que mejoran el rendimiento sostenible, la resiliencia a picos de carga y la utilización de memoria.
JEP 479: eliminar el puerto Windows x86 de 32 bits: ayuda a los desarrolladores a aumentar la eficiencia al eliminar el código fuente y el soporte de compilación para el puerto Windows x86 de 32 bits, lo que simplifica la infraestructura de compilación y prueba del JDK.
JEP 501: descartar el puerto x86 de 32 bits para eliminación: ayuda a los desarrolladores a aumentar la productividad al desaprobar el puerto x86 de 32 bits con la intención de eliminarlo en una futura versión. Esto ayuda a los desarrolladores a acceder a nuevas características que requieren soporte específico de la plataforma sin tener que implementar retrocesos para x86 de 32 bits.
Además, al introducir características modernas y seguras mientras se desaprueban y eliminan gradualmente las características inseguras, Oracle subraya su compromiso de mantener la integridad de Java y alinearse con las mejores prácticas de desarrollo de software. Oracle ha designado tres características para eliminación en una futura versión de Java: JEP 472: prepárate para restringir el uso de JNI; JEP 486: deshabilitar permanentemente el administrador de seguridad; JEP 498: advertir al usar métodos de acceso a memoria en sun.misc.Unsafe.
Las características en la versión Java 24 son el resultado de la colaboración continua entre Oracle y otros miembros de la comunidad global de desarrolladores de Java a través de OpenJDK y el Java Community Process (JCP). Para más detalles sobre las características de Java 24, lee el blog técnico de Java 24.
Soporte para Global Java Community con innovación en la nube
Java ofrece mayor innovación, rendimiento, eficiencia y ahorro de costos cuando se implementa en Oracle Cloud Infrastructure (OCI), que es una de las primeras nubes de escala hiperescalar en soportar Java 24. Al ofrecer Oracle Java SE, Oracle GraalVM y el Java SE Subscription Enterprise Performance Pack sin costo adicional en OCI, Java 24 ayuda a los desarrolladores a crear y desplegar aplicaciones que funcionan más rápido, mejor y con una optimización en la relación costo-desempeño.
La suscripción Oracle Java Universal SE proporciona a los clientes soporte de clase mundial. Incluye el Java SE Subscription Enterprise Performance Pack, soporte de triaje para toda la cartera de Java, derecho de uso de Oracle GraalVM, acceso a las características avanzadas del Java Management Service, y la flexibilidad de actualizar al ritmo del negocio de los clientes. Esto ayuda a las organizaciones de TI a gestionar la complejidad, mitigar los riesgos de seguridad y controlar los costos.
Testimonios
“Estoy esperando con ansias el refinamiento adicional de la API de Vectores en Java 24 para mejorar aún más las aplicaciones tanto predictivas como generativas de IA”, dijo Frank Greco, presidente, NYJavaSIG. “Habilitar algoritmos de IA eficientes directamente en Java ayuda a garantizar que las aplicaciones de IA sean altamente eficientes y escalables en diversas plataformas de hardware modernas".
“Java 24 introduce Stream Gatherers, una poderosa mejora que brinda a los desarrolladores control preciso sobre cómo se agrupan y procesan los elementos dentro de los streams”, dijo Richard Fichtner, CEO, XDEV Software GmbH. “Esto hace que las transformaciones de datos complejas sean más expresivas y eficientes. Me encanta la característica porque elimina soluciones alternativas como recolectores personalizados o gimnasia de flatMap, permitiendo pipelines de streams más legibles y mantenibles”.
“Java es como una salsa creada por un chef fabuloso, con ingredientes seleccionados cuidadosamente, cocidos lo justo para obtener los mejores sabores,” dijo el Dr. Venkat Subramaniam, fundador, Agile Developer, Inc. “Mis sabores favoritos actuales son la API de Stream Gatherers, Scoped Values y Structured Concurrency".
“La tercera vista previa de constructores flexibles en Java 24 es una característica notable, ya que será muy beneficioso no tener que crear un método privado auxiliar para hacer que mis llamadas a este/super sean de una sola línea”, dijo Jeanne Boyarsky, desarrolladora, CodeRanch. “La característica de los gatherers de streams también es intrigante, y espero ver cómo las bibliotecas crean muchas nuevas operaciones intermedias para usarlas".
“En JetBrains, estamos emocionados de proporcionar soporte para Java 24 en IntelliJ IDEA desde el primer día,” dijo Marit van Dijk, defensora de Java, JetBrains. “Nuestro compromiso de mantenernos al ritmo de las últimas mejoras de Java ayuda a garantizar que los desarrolladores puedan adoptar sin problemas las valiosas nuevas características, mientras que la posibilidad de descargar Java 24 directamente dentro del IDE hace que la configuración sea sin esfuerzo”.
Para obtener más información sobre Java y su ecosistema global, visita:
Dev.java: portal oficial para el aprendizaje de Java
Inside.java: noticias y opiniones de los miembros del equipo Java de Oracle
Java YouTube: canal oficial de Java en YouTube con videos de aprendizaje de Java
Oracle ofrece conjuntos integrados de aplicaciones y una infraestructura autónoma y segura en Oracle Cloud. Para más información sobre Oracle (NYSE: ORCL), visítanos en www.oracle.com.
Exención de responsabilidad de producto futuro
El propósito del texto anterior es esbozar la línea general de nuestros productos. Se ha redactado solo con fines informativos y no se debe incorporar a ningún contrato. No representa ningún compromiso de entrega de material, código o funcionalidad, y no se debe utilizar como la base para tomar decisiones de compra. El desarrollo, lanzamiento, calendarización y precio de cualquier característica o funcionalidad descrita para los productos de Oracle pueden cambiar y quedan a la entera discreción de Oracle Corporation.
Marcas registradas
Oracle, Java, MySQL y NetSuite son marcas registradas de Oracle Corporation. NetSuite fue la primera empresa en la nube, la que inició la nueva era de la computación en la nube.