Historial de versiones de Java - Java version history
El lenguaje Java ha sufrido varios cambios desde JDK 1.0, así como numerosas adiciones de clases y paquetes a la biblioteca estándar . Desde J2SE 1.4, la evolución del lenguaje Java se ha regido por Java Community Process (JCP), que utiliza Java Specification Requests (JSR) para proponer y especificar adiciones y cambios a la plataforma Java . El idioma está especificado por Java Language Specification (JLS); los cambios en el JLS se gestionan bajo JSR 901 .
Además de los cambios de idioma, se han realizado otros cambios en la biblioteca de clases de Java a lo largo de los años, que ha crecido de unos cientos de clases en JDK 1.0 a más de tres mil en J2SE 5. API completamente nuevas , como Swing y Java2D , Se han introducido, y muchas de las clases y métodos originales de JDK 1.0 han quedado obsoletos . Algunos programas permiten la conversión de programas Java de una versión de la plataforma Java a una más antigua (por ejemplo, Java 5.0 con versiones anteriores de la versión 1.4) (consulte Herramientas de compatibilidad con Java ).
Con respecto a Oracle Java SE Support Roadmap, las versiones 17, 11 y 8 son las versiones de soporte a largo plazo (LTS) actualmente admitidas , donde los clientes de Oracle recibirán Oracle Premier Support. La última actualización pública de software gratuito de Java 8 LTS para uso comercial fue lanzada por Oracle en enero de 2019, mientras que Oracle continúa lanzando actualizaciones públicas gratuitas de Java 8 para desarrollo y uso personal de manera indefinida. Java 10, una versión de lanzamiento rápido previamente admitida, finalizó su soporte en septiembre de 2018, la misma fecha en que comenzó el soporte para Java 11. Java 7 ya no se admite públicamente. Para Java 11, Oracle no proporcionará soporte a largo plazo para el público; en cambio, se espera que la comunidad OpenJDK más amplia , como Eclipse Adoptium u otras, realice el trabajo.
La disponibilidad general de Java 17 comenzó el 14 de septiembre de 2021 y Java 18 está en desarrollo.
Versión | Fecha de lanzamiento |
Fin de las actualizaciones públicas gratuitas |
Soporte extendido hasta |
---|---|---|---|
JDK Beta | 1995 | ? | ? |
JDK 1.0 | Enero de 1996 | ? | ? |
JDK 1.1 | Febrero de 1997 | ? | ? |
J2SE 1.2 | Diciembre de 1998 | ? | ? |
J2SE 1.3 | Mayo de 2000 | ? | ? |
J2SE 1.4 | Febrero de 2002 | Octubre de 2008 | febrero de 2013 |
J2SE 5.0 | Septiembre de 2004 | Noviembre de 2009 | Abril de 2015 |
Java SE 6 | Diciembre de 2006 | abril 2013 | Diciembre de 2018 Diciembre de 2026 para Azul |
Java SE 7 | Julio de 2011 | Abril de 2015 | Julio 2022 |
Java SE 8 (LTS) | Marzo del 2014 |
Enero de 2019 para Oracle (comercial) Diciembre de 2030 para Oracle (no comercial) Diciembre de 2030 para Azul Mayo de 2026 para IBM Semeru Al menos mayo de 2026 para Eclipse Adoptium Al menos mayo de 2026 para Amazon Corretto |
Diciembre 2030 |
Java SE 9 | Septiembre de 2017 | Marzo de 2018 para OpenJDK | N / A |
Java SE 10 | Marzo de 2018 | Septiembre de 2018 para OpenJDK | N / A |
Java SE 11 (LTS) | Septiembre de 2018 | Septiembre de 2026 para Azul Octubre de 2024 para IBM Semeru Al menos octubre de 2024 para Eclipse Adoptium Al menos septiembre de 2027 para Amazon Corretto Al menos octubre de 2024 para Microsoft |
Septiembre de 2026 Septiembre de 2026 para Azul |
Java SE 12 | Marzo de 2019 | Septiembre de 2019 para OpenJDK | N / A |
Java SE 13 | Septiembre de 2019 | Marzo de 2020 para OpenJDK | N / A |
Java SE 14 | Marzo de 2020 | Septiembre de 2020 para OpenJDK | N / A |
Java SE 15 | Septiembre de 2020 | Marzo de 2021 para OpenJDK Marzo de 2023 para Azul |
N / A |
Java SE 16 | Marzo 2021 | Septiembre de 2021 para OpenJDK | N / A |
Java SE 17 (LTS) | Septiembre 2021 | Septiembre de 2029 para Azul Al menos septiembre de 2027 para Microsoft Al menos TBA para Eclipse Adoptium |
Septiembre de 2029 o más tarde Septiembre de 2029 para Azul |
Java SE 18 | Marzo 2022 | Septiembre de 2022 para OpenJDK | N / A |
Java SE 19 | Septiembre 2022 | Marzo de 2023 para OpenJDK | N / A |
Java SE 20 | Marzo 2023 | Septiembre de 2023 para OpenJDK | N / A |
Java SE 21 (LTS) | Septiembre 2023 | TBA | Septiembre 2031 |
Leyenda:
Versión antigua
Versión anterior, aún mantenida
Ultima versión
Lanzamiento futuro
|
Historia
En septiembre de 2017, Mark Reinhold, arquitecto jefe de la plataforma Java, propuso cambiar el tren de lanzamiento a "un lanzamiento de funciones cada seis meses" en lugar del programa de dos años vigente en ese momento. Esta propuesta entró en vigor para todas las versiones siguientes y sigue siendo el calendario de lanzamiento actual.
JDK 1.0
Liberado | 23 de enero de 1996 |
---|
La primera versión fue lanzada el 23 de enero de 1996. La primera versión estable, JDK 1.0.2, se llama Java 1.
JDK 1.1
Liberado | 19 de febrero de 1997 |
---|
Las principales adiciones al lanzamiento del 19 de febrero de 1997 incluyeron:
- una amplia remodelación del modelo de eventos AWT
- clases internas agregadas al idioma
- JavaBeans
- JDBC
- RMI
- Reflexión que solo admitía Introspection, no fue posible ninguna modificación en tiempo de ejecución. (La capacidad de modificar objetos de forma reflexiva se agregó en J2SE 1.2, mediante la introducción de la clase AccessibleObject y sus subclases, como la clase Field ).
- Compilador JIT (Just In Time) en plataformas Microsoft Windows , producido para JavaSoft por Symantec
- Compatibilidad con internacionalización y Unicode con origen en Taligent
J2SE 1.2
Nombre clave | Patio de recreo |
---|---|
Liberado | 8 de diciembre de 1998 |
Zona de juegos con nombre en clave
El lanzamiento del 8 de diciembre de 1998 y los lanzamientos posteriores a J2SE 5.0 fueron renombrados retrospectivamente como Java 2 y el nombre de la versión "J2SE" ( Java 2 Platform, Standard Edition ) reemplazó a JDK para distinguir la plataforma base de J2EE ( Java 2 Platform, Enterprise Edition ). y J2ME ( Java 2 Platform, Micro Edition ). Esta fue una versión muy significativa de Java, ya que triplicó el tamaño de la plataforma Java a 1520 clases en 59 paquetes. Las principales adiciones incluyeron:
-
strictfp
palabra clave - la API gráfica Swing se integró en las clases principales
- La JVM de Sun estaba equipada con un compilador JIT por primera vez
- Complemento de Java
- Java IDL , una implementación IDL para la interoperabilidad CORBA
- Colecciones marco
J2SE 1.3
Nombre clave | Cernícalo |
---|---|
Liberado | 8 de mayo de 2000 |
Nombre en clave cernícalo
Los cambios más notables en la versión del 8 de mayo de 2000 fueron:
- HotSpot JVM incluido (HotSpot JVM se lanzó por primera vez en abril de 1999 para J2SE 1.2 JVM)
- RMI se modificó para admitir la compatibilidad opcional con CORBA
- Interfaz de directorio y nombres de Java (JNDI) incluida en las bibliotecas principales (anteriormente disponible como una extensión)
- Arquitectura del depurador de la plataforma Java (JPDA)
- JavaSound
- Clases de proxy sintético
J2SE 1.4
Nombre clave | Esmerejón |
---|---|
Liberado | 6 de febrero de 2002 |
Fin del apoyo público | Octubre de 2008 |
Fin del soporte pagado | febrero de 2013 |
Nombre en clave Merlin
La versión del 6 de febrero de 2002 fue la primera versión de la plataforma Java desarrollada bajo el Proceso de la comunidad Java como JSR 59 . Los cambios importantes incluyeron:
- Cambios de idioma
- Mejoras de la biblioteca
- Expresiones regulares modeladas a partir de expresiones regulares de Perl
- El encadenamiento de excepciones permite que una excepción encapsule la excepción original de nivel inferior
- Compatibilidad con el protocolo de Internet versión 6 ( IPv6 )
- E / S sin bloqueo (Java) (denominado NIO) (especificado en JSR 51 )
- API de registro (especificada en JSR 47 )
- API de E / S de imagen para leer y escribir imágenes en formatos como JPEG y PNG
- Analizador XML integrado y procesador XSLT ( JAXP ) (especificado en JSR 5 y JSR 63 )
- Extensiones integradas de seguridad y criptografía ( JCE , JSSE , JAAS )
- Java Web Start incluido (Java Web Start se lanzó por primera vez en marzo de 2001 para J2SE 1.3) (especificado en JSR 56 )
- API de preferencias (
java.util.prefs
)
El soporte público y las actualizaciones de seguridad para Java 1.4 finalizaron en octubre de 2008. Las actualizaciones de seguridad pagas para los clientes de Oracle finalizaron en febrero de 2013.
J2SE 5.0
Nombre clave | Tigre |
---|---|
Liberado | 30 de septiembre de 2004 |
Fin del apoyo público | Noviembre de 2009 |
Fin del soporte pagado | Abril de 2015 |
Nombre en clave Tigre
El lanzamiento del 30 de septiembre de 2004 se numeró originalmente como 1.5, que todavía se usa como el número de versión interno. El número se cambió para "reflejar mejor el nivel de madurez, estabilidad, escalabilidad y seguridad del J2SE". Esta versión fue desarrollada bajo JSR 176 .
J2SE 5.0 entró en su período de finalización de actualizaciones públicas el 8 de abril de 2008; las actualizaciones ya no están disponibles para el público a partir del 3 de noviembre de 2009. Las actualizaciones estuvieron disponibles para los clientes de pago de Oracle hasta mayo de 2015.
Tiger agregó una serie de características de lenguaje nuevas e importantes:
- Genéricos : proporciona seguridad de tipo en tiempo de compilación (estática) para colecciones y elimina la necesidad de la mayoría de tipos de conversión ( conversión de tipo) (especificado por JSR 14 )
- Metadatos : también llamados anotaciones ; permite que las construcciones del lenguaje, como clases y métodos, se etiqueten con datos adicionales, que luego pueden ser procesados por utilidades con reconocimiento de metadatos (especificadas por JSR 175 )
-
Autoboxing / unboxing: conversiones automáticas entre tipos primitivos (como
int
) y clases de envoltura primitiva (comoInteger
) (especificadas por JSR 201 ) -
Enumeraciones : la
enum
palabra clave crea una typesafe , lista ordenada de valores (comoDay.MONDAY
,Day.TUESDAY
, etc.); anteriormente, esto solo se podía lograr mediante enteros constantes no seguros para tipos o clases construidas manualmente (patrón de enumeración seguro para tipos) (especificado por JSR 201 ) -
Varargs : el último parámetro de un método ahora se puede declarar usando un nombre de tipo seguido de tres puntos (p
void drawtext(String... lines)
. Ej. ); en el código de llamada se puede usar cualquier número de parámetros de ese tipo y luego se colocan en una matriz para pasar al método, o alternativamente, el código de llamada puede pasar una matriz de ese tipo for each
Bucle mejorado : lafor
sintaxis del bucle se amplía con una sintaxis especial para iterar sobre cada miembro de una matriz o cualquieraIterable
, como lasCollection
clases estándar (especificadas por JSR 201 )- Semántica de ejecución mejorada para programas Java de subprocesos múltiples; El nuevo modelo de memoria de Java aborda cuestiones de complejidad, eficacia y rendimiento de especificaciones anteriores.
- Importaciones estáticas
También hubo las siguientes mejoras en las bibliotecas estándar:
- Generación automática de stub para objetos RMI
- Swing : nueva apariencia y sensación que se pueden aplicar con carcasas , llamada sintetizador
- Las utilidades de concurrencia en el paquete
java.util.concurrent
- Clase de escáner para analizar datos de varios flujos de entrada y búferes
Java 5 es la última versión de Java que admite oficialmente Microsoft Windows 98 y Windows ME , mientras que Windows Vista era la versión más nueva de Windows en la que se admitía J2SE 5 antes de que Java 5 terminara su vida útil en octubre de 2009.
Java 5 Update 5 (1.5.0_05) es la última versión de Java que funciona en Windows 95 (con Internet Explorer 5.5 instalado) y Windows NT 4.0 .
Java 5 estuvo disponible por primera vez en Apple Mac OS X 10.4 (Tiger) y era la versión predeterminada de Java instalada en Apple Mac OS X 10.5 (Leopard).
El soporte público y las actualizaciones de seguridad para Java 1.5 finalizaron en noviembre de 2009. Las actualizaciones de seguridad pagas para los clientes de Oracle finalizaron en abril de 2015.
Cambio de versión
Esta versión introdujo un nuevo sistema de control de versiones para el lenguaje Java, aunque el antiguo sistema de control de versiones siguió utilizándose para las bibliotecas de desarrolladores:
Ambos números de versión "1.5.0" y "5.0" se utilizan para identificar esta versión de Java 2 Platform Standard Edition. La versión "5.0" es la versión del producto, mientras que "1.5.0" es la versión para desarrolladores. El número "5.0" se utiliza para reflejar mejor el nivel de madurez, estabilidad, escalabilidad y seguridad del J2SE.
Esta correspondencia continuó hasta las versiones posteriores (Java 6 = JDK 1.6, Java 7 = JDK 1.7, etc.).
Actualizaciones de Java 5
Liberación | Fecha de lanzamiento | Reflejos |
---|---|---|
Java SE 5 | 2004-10-04 | Metadatos, tipos genéricos, autoboxing y auto-unboxing de tipos primitivos, for bucle mejorado , tipos enumerados, importación estática, E / S formateada, varargs y utilidades de simultaneidad. Tiempo de inicio y espacio de memoria mejorados. Uso compartido de datos de solo lectura entre varias JVM en ejecución. Supervisión y gestión remota. Una nueva API de creación de perfiles de JVM. Generación programática de seguimientos de pila. Soporte para XML 1.1 con espacios de nombres, esquema XML, SAX 2.0.2, DOM Nivel 3 y XSLT con un compilador XSLTC rápido. Soporte Unicode 4.0.
|
Java SE 5 Actualización 1 | 2004-12-25 | Se han corregido 50 errores. |
Java SE 5 Actualización 2 | 2005-03-16 | Se solucionaron algunos accidentes. El programa ahora está compilado con una mejor optimización. Se realizaron correcciones de errores de calendario y otras correcciones de errores. |
Java SE 5 Actualización 3 | 2005-05-03 | Esta versión corrige varios errores, incluidos los bloqueos del complemento de Mozilla para Linux . |
Java SE 5 Actualización 4 | 2005-07-04 | Con el lanzamiento, la compatibilidad con J2SE para Windows de 64 bits ha progresado desde la versión candidata a la versión final. Esta versión se ejecuta en máquinas en modo AMD64 / EM64T de 64 bits con Windows Server 2003 x64 Edition. |
Java SE 5 Update 5 | 2005-09-18 | Se solucionaron varios errores y se realizaron mejoras de rendimiento. Última versión para Windows 95 y Windows NT 4.0. |
Java SE 5 Update 6 | 2005-12-07 | Antes de esta actualización, un subprograma o aplicación podría especificar la versión del JRE en la que se ejecutaría. Esto ha cambiado. Todos los subprogramas se ejecutan con la última versión de JRE. |
Java SE 5 Update 7 | 2006-05-29 | Se solucionaron varios errores y se realizaron mejoras de rendimiento. |
Java SE 5 Actualización 8 | 2006-08-13 | Se solucionaron varios errores y se realizaron mejoras de rendimiento. |
Java SE 5 Update 9 | 2006-11-12 | Esta versión corrige varias regresiones menores. |
Java SE 5 Actualización 10 | 2006-12-22 | Se agregó una implementación de la función de notificación de eventos epoll I / O, compatible con Linux 2.6. Se solucionaron muchos errores. |
Java SE 5 Update 11 | 2007-03-08 | Se solucionaron varios errores y se realizaron mejoras de rendimiento. |
Java SE 5 Update 12 | 2007-06-11 | |
Actualización 13 de Java SE 5 | 2007-10-05 | Se solucionaron varias vulnerabilidades de seguridad en Java Web Start relacionadas con el acceso a archivos locales. Se solucionó una vulnerabilidad de seguridad en el JRE que permitía eludir las restricciones de acceso a la red. Se solucionaron varios otros problemas de seguridad y errores menores. |
Java SE 5 Update 14 | ||
Actualización 15 de Java SE 5 | 2008-03-06 | Se corrigieron varios bloqueos debido a que el búfer de pila estaba fuera de los límites, junto con varios otros errores. Ahora se incluyen nuevos certificados raíz de AOL, DigiCert y TrustCenter. |
Java SE 5 Actualización 16 | 2008-07-23 | Esta versión corrige varias fallas de seguridad, como vulnerabilidades DoS, desbordamientos de búfer y otros errores que podrían provocar fallas o que darían acceso a los subprogramas a ciertos recursos del sistema. Estas vulnerabilidades se ubicaron en Java Web Start, en el Agente de administración de Java Management Extensions (JMX) y en las funciones para manejar datos XML. |
Actualización 17 de Java SE 5 | 2008-12-03 | La implementación del juego de caracteres UTF-8 se actualizó para manejar la forma no más corta de secuencias de bytes UTF-8, introduciendo una incompatibilidad de versiones anteriores. Se agregaron nuevos certificados raíz. Se solucionaron muchos errores. |
Actualización 18 de Java SE 5 | 2009-03-25 | Se resolvieron varios problemas de seguridad. El comportamiento de la función JNDI para almacenar y recuperar objetos Java en un directorio LDAP se modificó ligeramente. Se agregaron cinco nuevos certificados raíz. Se solucionaron muchos errores. |
Actualización 19 de Java SE 5 | 2009-05-29 | Se agregó soporte para varias configuraciones del sistema. Se agregó compatibilidad con etiquetas de servicio. Se solucionaron muchos errores, incluidos varios bloqueos y pérdidas de memoria. |
Java SE 5 Update 20 | 2009-08-06 | Se resolvieron varias vulnerabilidades de seguridad, como el acceso potencial al sistema por parte de subprogramas que no son de confianza y los desbordamientos de enteros en el procesamiento de imágenes y en Unpack200. Se agregaron varios certificados raíz nuevos. Se solucionaron muchos otros errores menores. |
Actualización 21 de Java SE 5 | 2009-09-09 | Se solucionaron muchos errores menores. |
Actualización 22 de Java SE 5 | 2009-11-04 | Esta versión marca el fin de la vida útil (EOSL) para Java 5 y es su versión pública final. Se solucionaron varias vulnerabilidades de seguridad, informadas como Sun Alerts 269868, 270474, 270475 y 270476. Se solucionaron varios otros errores. Además, se agregaron dos nuevos certificados raíz. |
Actualización 23 de Java SE 5 | 2010-01-13 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10 ; 32 correcciones de seguridad. |
Actualización 24 de Java SE 5 | 2010-04-15 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 2 correcciones de seguridad. |
Actualización 25 de Java SE 5 | 2010-07-07 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el clúster de conjunto de parches recomendado de Solaris 10; 26 correcciones de seguridad. |
Actualización 26 de Java SE 5 | 2010-10-12 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 2 correcciones de seguridad. |
Actualización 27 de Java SE 5 | 2010-12-08 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el clúster de conjunto de parches recomendado de Solaris 10; 22 correcciones de seguridad. |
Actualización 28 de Java SE 5 | 2011-02-15 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 22 correcciones de seguridad |
Actualización 29 de Java SE 5 | 2011-03-21 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el clúster de conjunto de parches recomendado de Solaris 10; 21 correcciones de seguridad. |
Actualización 30 de Java SE 5 | 2011-06-07 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 1 solución de seguridad. |
Actualización 31 de Java SE 5 | 2011-08-16 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el clúster de conjunto de parches recomendado de Solaris 10; 10 correcciones de seguridad. |
Actualización 32 de Java SE 5 | 2011-10-18 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el clúster de conjunto de parches recomendado de Solaris 10; 20 correcciones de seguridad |
Actualización 33 de Java SE 5 | 2011-12-12 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el clúster de conjunto de parches recomendado de Solaris 10; 21 correcciones de seguridad. |
Actualización 34 de Java SE 5 | 2012-02-14 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el clúster de conjunto de parches recomendado de Solaris 10; 14 correcciones de seguridad |
Actualización 35 de Java SE 5 | 2012-04-26 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el clúster de conjunto de parches recomendado de Solaris 10; 5 correcciones de seguridad. |
Actualización 36 de Java SE 5 | 2012-06-12 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el clúster de conjunto de parches recomendado de Solaris 10; 14 correcciones de seguridad |
Actualización 38 de Java SE 5 | 2012-08-14 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el clúster de conjunto de parches recomendado de Solaris 10; 30 correcciones de seguridad |
Actualización 39 de Java SE 5 | 2013-02-19 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el clúster de conjunto de parches recomendado de Solaris 10; 50 correcciones de seguridad |
Actualización 40 de Java SE 5 | 2013-02-19 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el clúster de conjunto de parches recomendado de Solaris 10; 5 correcciones de seguridad |
Actualización 41 de Java SE 5 | 2013-03-04 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 2 correcciones de seguridad |
Actualización 45 de Java SE 5 | 2013-04-16 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 42 correcciones de seguridad |
Actualización 51 de Java SE 5 | 2013-06-18 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el clúster de conjunto de parches recomendado de Solaris 10; 40 correcciones de seguridad |
Actualización 55 de Java SE 5 | 2013-10-15 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 51 correcciones de seguridad |
Actualización 61 de Java SE 5 | 2014-01-14 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el clúster de conjunto de parches recomendado de Solaris 10; 36 correcciones de seguridad |
Actualización 65 de Java SE 5 | 2014-04-15 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 37 correcciones de seguridad |
Actualización 71 de Java SE 5 | 2014-07-15 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el clúster de conjunto de parches recomendado de Solaris 10; 20 correcciones de seguridad |
Actualización 75 de Java SE 5 | 2014-10-16 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el clúster de conjunto de parches recomendado de Solaris 10; 25 correcciones de seguridad |
Actualización 81 de Java SE 5 | 2015-01-21 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 19 correcciones de seguridad |
Actualización 85 de Java SE 5 | 2015-04-14 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el clúster de conjunto de parches recomendado de Solaris 10; 14 correcciones de seguridad |
Java SE 6
Nombre clave | Mustango |
---|---|
Liberado | 11 de noviembre de 2006 |
Fin del apoyo público | febrero de 2013 |
Nombre en clave Mustang
A partir de la versión lanzada el 11 de diciembre de 2006, Sun reemplazó el nombre "J2SE" por Java SE y eliminó el ".0" del número de versión. La numeración interna para desarrolladores sigue siendo 1.6.0.
Esta versión fue desarrollada bajo JSR 270 .
Durante la fase de desarrollo, se lanzaron nuevas compilaciones, incluidas mejoras y correcciones de errores, aproximadamente cada semana. Las versiones beta se lanzaron en febrero y junio de 2006, lo que condujo a una versión final que se produjo el 11 de diciembre de 2006.
Principales cambios incluidos en esta versión:
- Se eliminó el soporte para versiones anteriores de Win9x; Extraoficialmente, Java 6 Update 7 fue la última versión de Java que se demostró que funciona en estas versiones de Windows. Se cree que esto se debe a los principales cambios en la Actualización 10.
- Soporte de lenguaje de scripting ( JSR 223 ): API genérica para una estrecha integración con lenguajes de scripting e integración incorporada de Mozilla JavaScript Rhino .
- Mejoras dramáticas de rendimiento para la plataforma central y Swing .
- Soporte de servicio web mejorado a través de JAX-WS ( JSR 224 ).
- Soporte JDBC 4.0 ( JSR 221 ).
- API de compilador de Java ( JSR 199 ): una API que permite a un programa Java seleccionar e invocar un compilador de Java mediante programación.
- Actualización de JAXB a la versión 2.0: incluida la integración de un analizador StAX .
- Soporte para anotaciones conectables ( JSR 269 ).
- Muchas mejoras de la GUI , como la integración de SwingWorker en la API, la clasificación y el filtrado de tablas y el verdadero doble búfer de Swing (eliminando el efecto de área gris).
- Las mejoras de JVM incluyen: optimización del rendimiento de la sincronización y del compilador , nuevos algoritmos y actualizaciones de los algoritmos de recolección de basura existentes y rendimiento de inicio de la aplicación.
Java 6 se puede instalar en Mac OS X 10.5 (Leopard) que se ejecuta en máquinas con procesador de 64 bits (Core 2 Duo y superior). Java 6 también es compatible con máquinas de 32 y 64 bits que ejecutan Mac OS X 10.6 (Snow Leopard).
Java 6 llegó al final de su vida útil admitida en febrero de 2013, momento en el que se programó la detención de todas las actualizaciones públicas, incluidas las actualizaciones de seguridad. Oracle lanzó dos actualizaciones más de Java 6 en marzo y abril de 2013, que corrigieron algunas vulnerabilidades de seguridad.
Actualizaciones de Java 6
Después del lanzamiento de Java 6, Sun y, posteriormente, Oracle, lanzaron varias actualizaciones que, aunque no cambiaron ninguna API pública, mejoraron la usabilidad del usuario final o corrigieron errores.
Liberación | Fecha de lanzamiento | Reflejos |
---|---|---|
Java SE 6 | 2006-12-23 | Esta versión agrega muchas mejoras en los campos de servicios web, secuencias de comandos, bases de datos, anotaciones conectables y seguridad, así como calidad, compatibilidad y estabilidad. JConsole ahora es compatible oficialmente. Se ha agregado compatibilidad con Java DB. |
Java SE 6 Actualización 1 | 2007-05-07 | |
Java SE 6 Update 2 | 2007-07-03 | |
Java SE 6 Update 3 | 2007-10-03 | |
Java SE 6 Update 4 | 2008-01-14 | HotSpot VM 10 |
Java SE 6 Update 5 | 2008-03-05 | Se eliminaron varias fallas de seguridad. Ahora se incluyen nuevos certificados raíz de AOL, DigiCert y TrustCenter. |
Java SE 6 Update 6 | 2008-04-16 | Se introdujo una solución para el infame problema de aserción de bloqueo de Xlib / XCB. Se solucionó una pérdida de memoria al usar la autenticación Kerberos con LoginContext. Se solucionaron varios otros errores. |
Java SE 6 Update 7 | Extraoficialmente, Java SE 6 Update 7 (1.6.0.7) es la última versión de Java que se demostró que funciona en la familia de sistemas operativos Win9x. | |
Java SE 6 Update 10 | 2008-10-15 | HotSpot VM 11. Los principales cambios de esta actualización incluyen:
|
Java SE 6 Update 11 | 2008-12-03 | 13 correcciones de seguridad |
Java SE 6 Update 12 | 2008-12-12 | Sin correcciones de seguridad; Complemento Java de 64 bits (solo para navegadores web de 64 bits); Compatibilidad con Windows Server 2008 ; mejoras de rendimiento de gráficos y aplicaciones JavaFX |
Java SE 6 Update 13 | 2009-03-24 | 7 correcciones de seguridad, JNDI almacena y recupera objetos Java en LDAP ligeramente modificado, JMX Change (createMBeanunregisterMBean), 4 nuevos certificados raíz agregados |
Java SE 6 Update 14 | 2009-05-28 | HotSpot VM 14. Esta versión incluye amplias actualizaciones de rendimiento del compilador JIT, punteros comprimidos para máquinas de 64 bits, así como compatibilidad con el recolector de basura de pausa baja G1 (Garbage First).
La Algunos desarrolladores han notado un problema introducido en esta versión que hace que los depuradores pierdan puntos de interrupción aparentemente al azar. Sun tiene un error correspondiente, que está rastreando el problema. La solución alternativa se aplica a las máquinas virtuales cliente y servidor. El uso de la |
Actualización 15 de Java SE 6 | 2009-08-04 | Se introdujo la funcionalidad de parche en el lugar |
Java SE 6 Update 16 | 2009-08-11 | Se solucionó el problema introducido en la actualización 14 que causaba que los depuradores perdieran puntos de interrupción |
Java SE 6 Update 17 | 2009-11-04 | Correcciones de seguridad; dos nuevos certificados raíz |
Actualización 18 de Java SE 6 | 2010-01-13 | Sin correcciones de seguridad; Hotspot VM 16; soporte para Ubuntu 8.04 LTS Desktop Edition, SLES 11, Windows 7 , Red Hat Enterprise Linux 5.3, Firefox 3.6, VisualVM 1.2; base de datos Java actualizada; muchas mejoras de rendimiento |
Actualización 19 de Java SE 6 | 2010-03-30 | Correcciones de seguridad; cambios en el certificado raíz: siete nuevos, tres eliminados, cinco reemplazados con algoritmos de firma más sólidos; arreglo provisional para el ataque de renegociación de TLS |
Java SE 6 Update 20 | 2010-04-15 | 2 correcciones de seguridad |
Actualización 21 de Java SE 6 | 2010-07-07 | Sin correcciones de seguridad; Hotspot VM 17; soporte para Red Hat Enterprise Linux 5.4 y 5.5, Oracle Enterprise Linux 4.8, 5.4, 5.5; Soporte de Google Chrome 4; soporte para indicadores de progreso de carga personalizados; VisualVM 1.2.2 |
Actualización 22 de Java SE 6 | 2010-10-12 | 29 arreglos de seguridad; Soporte RFC 5746 |
Actualización 23 de Java SE 6 | 2010-12-08 | Sin correcciones de seguridad; Hotspot VM 19; mejor soporte para idiomas de derecha a izquierda |
Java SE 6 Update 24 | 2011-02-15 | 21 arreglos de seguridad; base de datos Java actualizada |
Actualización 25 de Java SE 6 | 2011-03-21 | Sin correcciones de seguridad; Hotspot VM 20; soporte para Internet Explorer 9 , Firefox 4 y Chrome 10; BigDecimal mejorado; incluye "niveles" de compilación en la VM Server que permite que se inicie rápidamente como lo hace la máquina virtual del cliente, además de conseguir un mejor rendimiento pico (esta función está activada mediante la especificación -server y -XX:+TieredCompilation las opciones de comando)
|
Actualización 26 de Java SE 6 | 2011-06-07 | 17 nuevas correcciones de seguridad; última versión compatible con Windows Vista SP1 |
Actualización 27 de Java SE 6 | 2011-08-16 | Sin correcciones de seguridad; certificación para Firefox 5 |
Actualización 29 de Java SE 6 | 2011-10-18 | 20 correcciones de seguridad, varias correcciones de errores |
Actualización 30 de Java SE 6 | 2011-12-12 | Sin correcciones de seguridad; corrección de la regresión SSL en la Actualización 29; soporte para Red Hat Enterprise Linux 6 |
Actualización 31 de Java SE 6 | 2012-02-14 | 14 correcciones de seguridad y una corrección de errores; la última versión funciona de manera confiable para Windows 2000 |
Actualización 32 de Java SE 6 | 2012-04-26 | Sin correcciones de seguridad, varias correcciones de errores |
Actualización 33 de Java SE 6 | 2012-06-12 | 14 correcciones de seguridad, carga mejorada de archivos de configuración de VM |
Actualización 34 de Java SE 6 | 2012-08-14 | Sin correcciones de seguridad, varias correcciones de errores |
Java SE 6 Update 35 | 2012-08-30 | Contiene una solución de seguridad en profundidad |
Actualización 37 de Java SE 6 | 2012-10-16 | 30 correcciones de seguridad |
Actualización 38 de Java SE 6 | 2012-12-11 | Varias correcciones de errores |
Actualización 39 de Java SE 6 | 2013-02-01 | 50 correcciones de seguridad |
Actualización 41 de Java SE 6 | 2013-02-19 | 5 correcciones de seguridad |
Actualización 43 de Java SE 6 | 2013-03-04 | 2 correcciones de seguridad |
Actualización 45 de Java SE 6 | 2013-04-16 | 42 correcciones de seguridad; otros cambios; actualización pública final. |
Actualización 51 de Java SE 6 | 2013-06-18 | No disponible públicamente, solo disponible a través del programa de soporte de Java SE y en Apple Update para OS X Snow Leopard, Lion & Mountain Lion; hasta 40 arreglos de seguridad |
Java SE 6 Update 65 | 2013-10-15 | No disponible públicamente, solo disponible a través del programa de soporte de Java SE y en Apple Update para OS X Snow Leopard, Lion & Mountain Lion; al menos 11 correcciones de seguridad críticas |
Actualización 71 de Java SE 6 | 2014-01-14 | No disponible para descarga pública; 33 arreglos |
Actualización 75 de Java SE 6 | 2014-04-15 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el grupo de parches recomendado de Solaris 10 núm. # 54; 25 correcciones de seguridad |
Actualización 81 de Java SE 6 | 2014-07-15 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 11 correcciones de seguridad |
Actualización 85 de Java SE 6 | 2014-10-16 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 18 correcciones de seguridad |
Actualización 91 de Java SE 6 | 2015-01-21 | Las versiones de Linux x64 y Windows i586 están disponibles como Implementación de referencia de Java SE 6. Otras versiones solo están disponibles a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 15 correcciones de seguridad |
Actualización 95 de Java SE 6 | 2015-04-14 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el clúster de conjunto de parches recomendado de Solaris 10; 14 correcciones de seguridad |
Actualización 101 de Java SE 6 | 2015-07-15 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 18 correcciones de seguridad La certificación para IE 10 y 11 se introdujo en 1.6.0_101 |
Actualización 105 de Java SE 6 | 2015-10-20 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 17 correcciones de seguridad |
Actualización 111 de Java SE 6 | 2016-01-20 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 13 correcciones de seguridad |
Actualización 113 de Java SE 6 | 2016-02-05 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 1 corrección de seguridad |
Actualización 115 de Java SE 6 | 2016-04-21 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 8 correcciones de seguridad |
Actualización 121 de Java SE 6 | 2016-07-19 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 15 correcciones de seguridad |
Actualización 131 de Java SE 6 | 2016-10-18 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 13 correcciones de seguridad |
Actualización 141 de Java SE 6 | 2017-01-17 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 17 correcciones de seguridad |
Actualización 151 de Java SE 6 | 2017-04-18 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 10 correcciones de seguridad |
Actualización 161 de Java SE 6 | 2017-07-18 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el clúster de conjunto de parches recomendado de Solaris 10; 5 correcciones de seguridad |
Actualización 171 de Java SE 6 | 2017-10-20 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 7 correcciones de seguridad |
Actualización 181 de Java SE 6 | 2018-01-16 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 12 correcciones de seguridad |
Actualización 191 de Java SE 6 | 2018-04-17 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 7 correcciones de seguridad |
Actualización 201 de Java SE 6 | 2018-07-17 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 3 correcciones de seguridad |
Actualización 211 de Java SE 6 | 2018-10-18 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 8 correcciones de seguridad |
Java SE 7
Nombre clave | Delfín |
---|---|
Liberado | 28 de julio de 2011 |
Fin del apoyo público | Abril de 2015 |
Fin del soporte pagado | Junio 2022 |
Java 7 (nombre en clave Dolphin ) es una actualización importante que se lanzó el 7 de julio de 2011 y estuvo disponible para los desarrolladores el 28 de julio de 2011. El período de desarrollo se organizó en trece hitos; el 6 de junio de 2011 finalizó el último de los trece hitos. En promedio, se lanzaron 8 compilaciones (que generalmente incluían mejoras y correcciones de errores) por hito. La lista de funciones del proyecto OpenJDK 7 enumera muchos de los cambios.
Las adiciones en Java 7 incluyen:
-
Soporte JVM para lenguajes dinámicos , con el nuevo
invokedynamic
código de bytes bajo JSR-292, siguiendo el trabajo de creación de prototipos que se realiza actualmente en la máquina virtual multilingüe. - Punteros comprimidos de 64 bits (disponibles en Java 6 con
-XX:+UseCompressedOops
) - Estos pequeños cambios de idioma (agrupados en un proyecto llamado Coin):
- Cuerdas en interruptor
- Gestión automática de recursos en declaración de prueba
- Inferencia de tipo mejorada para la creación de instancias genéricas, también conocido como operador de diamante <>
- Declaración simplificada del método varargs
- Literales enteros binarios
- Permitir guiones bajos en literales numéricos
- Detectar múltiples tipos de excepciones y volver a generar excepciones con una verificación de tipos mejorada
- Utilidades de concurrencia bajo JSR 166
- Nueva biblioteca de E / S de archivos (definida por JSR 203) que agrega soporte para múltiples sistemas de archivos, metadatos de archivos y enlaces simbólicos. Los nuevos paquetes son
java.nio.file
,java.nio.file.attribute
yjava.nio.file.spi
- Timsort se utiliza para ordenar colecciones y matrices de objetos en lugar de fusionar ordenación
- Soporte a nivel de biblioteca para algoritmos de criptografía de curva elíptica
- Una canalización de XRender para Java 2D, que mejora el manejo de funciones específicas de las GPU modernas
- Nuevas API de plataforma para las funciones de gráficos implementadas originalmente en la versión 6u10 como API no compatibles
- Soporte mejorado a nivel de biblioteca para nuevos protocolos de red, incluidos SCTP y protocolo directo de sockets
- Actualizaciones ascendentes a XML y Unicode
- Conjuntos de reglas de implementación de Java
Lambda (implementación de Java de funciones lambda ), Jigsaw (implementación de módulos de Java ) y parte de Coin se eliminaron de Java 7 y se lanzaron como parte de Java 8 (excepto Jigsaw , que se lanzó en Java 9).
Java 7 fue la versión predeterminada para descargar en java.com desde abril de 2012 hasta que se lanzó Java 8.
Actualizaciones de Java 7
Oracle emitió actualizaciones públicas para la familia Java 7 de forma trimestral hasta abril de 2015, cuando el producto alcanzó el final de su disponibilidad pública. Las actualizaciones adicionales para JDK 7, que están programadas para continuar hasta julio de 2022, solo están disponibles para los clientes con un contrato de soporte.
Liberación | Fecha de lanzamiento | Reflejos |
---|---|---|
Java SE 7 | 2011-07-28 | Versión inicial; HotSpot VM 21 |
Java SE 7 Actualización 1 | 2011-10-18 | 20 correcciones de seguridad, otras correcciones de errores |
Java SE 7 Update 2 | 2011-12-12 | Sin correcciones de seguridad; HotSpot VM 22; mejoras de confiabilidad y rendimiento; soporte para Solaris 11 y Firefox 5 y posteriores; JavaFX incluido con Java SE JDK, mejoras para aplicaciones implementadas en la web |
Java SE 7 Update 3 | 2012-02-14 | 14 correcciones de seguridad |
Java SE 7 Update 4 | 2012-04-26 | Sin actualizaciones de seguridad; HotSpot VM 23; Soporte JDK para Mac OS X |
Java SE 7 Update 5 | 2012-06-12 | 14 correcciones de seguridad |
Java SE 7 Update 6 | 2012-08-14 | JavaFX y Java Access Bridge incluidos en la instalación de Java SE JDK y JRE, compatibilidad con JavaFX para monitores táctiles y almohadillas táctiles, compatibilidad con JavaFX para Linux , compatibilidad con JDK y JRE para Mac OS X, JDK para Linux en ARM |
Java SE 7 Update 7 | 2012-08-30 | 4 correcciones de seguridad |
Java SE 7 Update 9 | 2012-10-16 | 30 correcciones de vulnerabilidades de seguridad |
Java SE 7 Update 10 | 2012-12-11 | Nuevas funciones de seguridad, como la capacidad de deshabilitar la ejecución de cualquier aplicación Java en el navegador y nuevos cuadros de diálogo para advertirle cuando el JRE es inseguro, y corrección de errores. |
Java SE 7 Update 11 | 2013-01-13 | Olson Data 2012i; corrección de errores para problemas con el registro del complemento en sistemas con la versión independiente de JavaFX instalada, correcciones de seguridad para CVE - 2013-0422 ; el nivel de seguridad predeterminado para los subprogramas de Java y las aplicaciones de inicio web se ha aumentado de "Medio" a "Alto" |
Java SE 7 Update 13 | 2013-02-01 | 50 correcciones de seguridad |
Java SE 7 Update 15 | 2013-02-19 | 5 correcciones de seguridad |
Java SE 7 Update 17 | 2013-03-04 | 2 correcciones de seguridad |
Actualización 21 de Java SE 7 | 2013-04-16 | Múltiples cambios que incluyen 42 correcciones de seguridad, un nuevo servidor JRE que no incluye el complemento y el JDK para Linux en ARM |
Actualización 25 de Java SE 7 | 2013-06-18 | Múltiples cambios que incluyen 40 correcciones de seguridad. |
Java SE 7 Update 40 | 2013-09-10 | 621 correcciones de errores, nuevas funciones de seguridad, ARM flotante , Java Mission Control 5.2 y compatibilidad con Retina Display |
Actualización 45 de Java SE 7 | 2013-10-15 | 51 arreglos de seguridad; protecciones contra la redistribución no autorizada de aplicaciones Java; restaurar avisos de seguridad; Cambios JAXP; TimeZone.setDefault change |
Actualización 51 de Java SE 7 | 2014-01-14 | 36 arreglos de seguridad; bloquear los subprogramas de JAVA sin manifiesto (como la consola remota, el subprograma de Java, la tarjeta IBM IMM, la tarjeta HP iLO) incluso si el cuadro de diálogo de advertencia tiene la frase "se bloqueará en la próxima versión", 17 correcciones de errores |
Actualización 55 de Java SE 7 | 2014-04-15 | 37 correcciones de seguridad, 19 correcciones de errores |
Java SE 7 Update 60 | 2014-05-28 | Java Mission Control 5.3, 130 correcciones de errores |
Actualización 65 de Java SE 7 | 2014-07-15 | 18 correcciones de errores |
Actualización 67 de Java SE 7 | 2014-08-04 | 1 corrección de errores |
Actualización 71 de Java SE 7 | 2014-10-14 | 16 correcciones de errores |
Actualización 72 de Java SE 7 | 2014-10-14 | Misma fecha de lanzamiento con la Actualización 71 que la Actualización del Conjunto de Parches (PSU) correspondiente para Java SE 7, 36 correcciones de errores |
Actualización 75 de Java SE 7 | 2015-01-20 | 12 correcciones de errores, SSLv3 deshabilitado de forma predeterminada |
Actualización 76 de Java SE 7 | 2015-01-20 | Misma fecha de lanzamiento con la Actualización 75 como Actualización del Conjunto de Parches (PSU) correspondiente para Java SE 7, 97 correcciones de errores |
Actualización 79 de Java SE 7 | 2015-04-14 | 21 correcciones de seguridad, 6 correcciones de errores, |
Actualización 80 de Java SE 7 | 2015-04-14 | Última versión pública de Java 7; misma fecha de lanzamiento con la Actualización 79 como Actualización del Conjunto de Parches (PSU) correspondiente para Java SE 7, 104 correcciones de errores |
Actualización 85 de Java SE 7 | 2015-07-15 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el clúster de conjunto de parches recomendado de Solaris 10; 25 correcciones de seguridad |
Actualización 91 de Java SE 7 | 2015-10-20 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el clúster de conjunto de parches recomendado de Solaris 10; 20 correcciones de seguridad |
Actualización 95 de Java SE 7 | 2016-01-19 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 8 correcciones de seguridad |
Actualización 97 de Java SE 7 | 2016-02-05 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 1 corrección de seguridad |
Actualización 99 de Java SE 7 | 2016-03-23 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 1 corrección de seguridad |
Actualización 101 de Java SE 7 | 2016-04-18 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 22 correcciones de seguridad |
Actualización 111 de Java SE 7 | 2016-07-19 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el clúster de conjunto de parches recomendado de Solaris 10; 36 correcciones de seguridad |
Actualización 121 de Java SE 7 | 2016-10-18 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 32 correcciones de seguridad |
Actualización 131 de Java SE 7 | 2017-01-17 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 34 correcciones de seguridad |
Actualización 141 de Java SE 7 | 2017-04-18 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 8 correcciones de seguridad |
Actualización 151 de Java SE 7 | 2017-07-18 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 4 correcciones de seguridad |
Actualización 161 de Java SE 7 | 2017-10-20 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 4 correcciones de seguridad |
Actualización 171 de Java SE 7 | 2018-01-16 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 51 correcciones de seguridad |
Actualización 181 de Java SE 7 | 2018-04-17 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 12 correcciones de seguridad |
Actualización 191 de Java SE 7 | 2018-07-17 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 9 correcciones de seguridad |
Actualización 201 de Java SE 7 | 2018-10-18 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 13 correcciones de seguridad |
Actualización 211 de Java SE 7 | 2019-01-15 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el clúster de conjunto de parches recomendado de Solaris 10; 5 correcciones de seguridad |
Actualización 221 de Java SE 7 | 2019-04-16 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el clúster de conjunto de parches recomendado de Solaris 10; 5 correcciones de seguridad |
Actualización 231 de Java SE 7 | 2019-07-16 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 6 correcciones de seguridad |
Actualización 241 de Java SE 7 | 2019-10-15 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 15 correcciones de seguridad |
Actualización 251 de Java SE 7 | 2020-01-14 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 12 correcciones de seguridad |
Actualización 261 de Java SE 7 | 2020-04-14 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 15 correcciones de seguridad |
Actualización 271 de Java SE 7 | 14 de julio de 2020 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 11 correcciones de seguridad |
Actualización 281 de Java SE 7 | 2020-10-20 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 8 correcciones de seguridad |
Actualización 291 de Java SE 7 | 2021-01-19 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 1 correcciones de seguridad |
Actualización 301 de Java SE 7 | 2021-04-12 | No está disponible públicamente, solo está disponible a través del programa de soporte de Java SE y en el cluster de conjunto de parches recomendado de Solaris 10; 11 correcciones de seguridad |
Java SE 8
Versión LTS | |
Liberado | 18 de marzo de 2014 |
---|---|
No. de PEC | 8 |
Java 8 se lanzó el 18 de marzo de 2014 e incluyó algunas características que estaban planificadas para Java 7 pero que luego se aplazaron.
El trabajo sobre las características se organizó en términos de propuestas de mejora de JDK (JEP) .
- JSR 335, JEP 126: Soporte a nivel de lenguaje para expresiones lambda (oficialmente, expresiones lambda; extraoficialmente, cierres ) bajo Project Lambda y métodos predeterminados ( métodos de extensión virtual ) que permiten la adición de métodos a interfaces sin romper las implementaciones existentes. Hubo un debate en curso en la comunidad Java sobre si agregar soporte para expresiones lambda. Más tarde, Sun declaró que las expresiones lambda se incluirían en Java y solicitó información de la comunidad para refinar la función. Apoyando expresiones lambda también permite funcionales operaciones al estilo en corrientes de elementos, tales como MapReduce , inspirada transformaciones en colecciones. Los métodos predeterminados permiten al autor de una API agregar nuevos métodos a una interfaz sin romper el código anterior al usarla. Aunque no era su intención principal, los métodos predeterminados también permiten la herencia múltiple de comportamiento (pero no el estado).
- JSR 223, JEP 174: Project Nashorn , un tiempo de ejecución de JavaScript que permite a los desarrolladores incrustar código JavaScript dentro de las aplicaciones
- JSR 308, JEP 104: Anotación sobre tipos de Java
- Aritmética de enteros sin signo
- JSR 337, JEP 120: anotaciones repetidas
- JSR 310, JEP 150: API de fecha y hora
- JEP 178: Bibliotecas JNI vinculadas estáticamente
- JEP 153: Lanzamiento de aplicaciones JavaFX (lanzamiento directo de JAR de aplicaciones JavaFX)
- JEP 122: Eliminar la generación permanente
Java 8 no es compatible con Windows XP, pero a partir de la actualización 25 de JDK 8, aún se puede instalar y ejecutar en Windows XP. Las actualizaciones anteriores de JDK 8 podrían ejecutarse bajo XP descargando un archivo en formato zip archivado y descomprimiéndolo para el ejecutable. La última versión de Java 8 podría ejecutarse en XP es la actualización 251. Pero la compatibilidad de sus componentes comienza a fallar en sistemas operativos no compatibles a principios de construir durante el desarrollo de actualizaciones de Java 8.
Desde octubre de 2014, Java 8 fue la versión predeterminada para descargar (y luego nuevamente la descarga que reemplazó a Java 9) desde el sitio web oficial. "Oracle continuará proporcionando actualizaciones públicas y actualizaciones automáticas de Java SE 8, indefinidamente para usuarios personales".
Actualizaciones de Java 8
Liberación | Fecha de lanzamiento | Reflejos |
---|---|---|
Java SE 8 | 2014-03-18 | Versión inicial |
Java SE 8 Update 5 | 2014-04-15 | Usando " * " en el Caller-Allowable-Codebase atributo; 11 correcciones de errores
|
Java SE 8 Update 11 | 2014-07-15 | Herramienta de análisis de dependencia de Java (jdeps); Opción del panel de control de Java para deshabilitar patrocinadores; Atributo de archivo JAR - Punto de entrada; Propiedad de límite de procesamiento JAXP - maxElementDepth; 18 correcciones de errores de seguridad, 15 correcciones de errores |
Java SE 8 Update 20 | 2014-08-19 | 669 correcciones de errores, JMC 5.4, deduplicación de cadenas (deshabilitado de forma predeterminada) |
Actualización 25 de Java SE 8 | 2014-10-14 | 10 correcciones de errores |
Actualización 31 de Java SE 8 | 2015-01-19 | 26 correcciones de errores; SSLv3 (deshabilitado de forma predeterminada) |
Java SE 8 Update 40 | 2015-03-03 | 645 correcciones de errores, se agregó la noción de "presión de memoria" para ayudar a indicar la cantidad de memoria del sistema que aún está disponible (presión baja = memoria alta, presión alta = memoria baja) |
Actualización 45 de Java SE 8 | 2015-04-14 | 13 correcciones de errores |
Actualización 51 de Java SE 8 | 2015-07-14 | Se agregó soporte para sandbox nativo en plataformas Windows (deshabilitado de manera predeterminada); también, 25 correcciones de seguridad, 14 correcciones de errores |
Java SE 8 Update 60 | 2015-08-18 | 480 correcciones de errores |
Java SE 8 Update 65 | 2015-10-20 | 25 correcciones de seguridad, 3 correcciones de errores |
Java SE 8 Update 66 | 2015-11-16 | 15 correcciones de errores |
Actualización 71 de Java SE 8 | 2016-01-19 | 8 correcciones de seguridad, 5 correcciones de errores |
Actualización 72 de Java SE 8 | 2016-01-19 | 8 correcciones de seguridad, 5 correcciones de errores, varias mejoras |
Actualización 73 de Java SE 8 | 2016-02-03 | 1 corrección de seguridad |
Actualización 74 de Java SE 8 | 2016-02-03 | 1 corrección de seguridad |
Actualización 77 de Java SE 8 | 2016-03-23 | 1 corrección de seguridad |
Actualización 91 de Java SE 8 | 2016-04-19 | 9 correcciones de seguridad, 4 correcciones de errores y mejoras |
Actualización 92 de Java SE 8 | 2016-04-19 | Seguridad y correcciones de errores de 8u91, además de 76 correcciones de errores adicionales; el ExitOnOutOfMemoryError y CrashOnOutOfMemoryError banderas se han introducido
|
Actualización 101 de Java SE 8 | 2016-07-19 | Seguridad y corrección de errores de 8u92, más 9 correcciones de errores adicionales |
Java SE 8 Update 102 | 2016-07-19 | Seguridad y corrección de errores de 8u101, además de 118 correcciones de errores adicionales |
Actualización 111 de Java SE 8 | 2016-10-18 | 7 correcciones de seguridad y 9 correcciones de errores |
Actualización 112 de Java SE 8 | 2016-10-18 | Funciones adicionales y 139 correcciones de errores sobre 8u111 |
Actualización 121 de Java SE 8 | 2017-01-17 | 3 funciones adicionales, 5 cambios y 11 correcciones de errores sobre 8u112. |
Actualización 131 de Java SE 8 | 2017-04-18 | 4 cambios y 42 correcciones de errores (2 notables). |
Actualización 141 de Java SE 8 | 2017-07-18 | Característica adicional, 3 cambios y 12 correcciones de errores. |
Actualización 144 de Java SE 8 | 2017-07-26 | 32 Correcciones de seguridad y corrección de errores de 8u141. |
Actualización 151 de Java SE 8 | 2017-10-17 | 22 correcciones de seguridad, 2 notas, 1 revocación de certificado, 1 función nueva, 6 cambios y 24 correcciones de errores de 8u144. |
Actualización 152 de Java SE 8 | 2017-10-17 | Correcciones de seguridad, 1 característica nueva, 1 cambio y 238 correcciones de errores de 8u151 (1 notable). |
Actualización 161 de Java SE 8 | 2018-01-16 | 21 correcciones de seguridad, 3 funciones nuevas, 9 cambios y 1 corrección de errores de 8u152. |
Actualización 162 de Java SE 8 | 2018-01-16 | Correcciones de seguridad, 63 correcciones de errores. |
Actualización 171 de Java SE 8 | 2018-04-17 | Correcciones de seguridad, corrección de errores. |
Actualización 172 de Java SE 8 | 2018-04-17 | Correcciones de seguridad, corrección de errores. |
Actualización 181 de Java SE 8 | 2018-07-17 | Correcciones de seguridad, corrección de errores. |
Actualización 191 de Java SE 8 | 2018-10-16 | Nuevas funciones, cambios, correcciones de errores, correcciones de seguridad. |
Actualización 192 de Java SE 8 | 2018-10-16 | Nuevas funciones, cambios, corrección de errores. |
Actualización 201 de Java SE 8 | 2019-01-15 | Nuevas funciones, cambios, corrección de errores. |
Actualización 202 de Java SE 8 | 2019-01-15 | Nuevas funciones, cambios, corrección de errores. |
Actualización 211 de Java SE 8 | 2019-04-16 | Nuevas funciones, cambios, corrección de errores. Actualización de licencia . |
Actualización 212 de Java SE 8 | 2019-04-16 | Nuevas funciones (por ejemplo, 5 símbolos de moneda, incluidos Bitcoin y "New Japanese Era Name Reiwa "), cambios, corrección de errores. Actualización de licencia . |
Actualización 221 de Java SE 8 | 2019-07-16 | Nuevas funciones, cambios, corrección de errores. |
Actualización 231 de Java SE 8 | 2019-10-15 | Nuevas funciones, cambios, correcciones de errores y 18 correcciones de seguridad. |
Actualización 241 de Java SE 8 | 2020-01-14 | Nuevas funciones, cambios, corrección de errores. |
Actualización 251 de Java SE 8 | 2020-04-14 | Nuevas funciones, cambios, corrección de errores. La última versión que se demostró que funcionaba en Windows XP de forma no oficial. |
Actualización 261 de Java SE 8 | 14 de julio de 2020 | Nuevas funciones, cambios, corrección de errores. |
Actualización 271 de Java SE 8 | 2020-10-20 | Nuevas funciones, cambios, corrección de errores. |
Actualización de Java SE 8 281 | 2021-01-19 | Nuevas funciones, cambios, corrección de errores. |
Actualización 291 de Java SE 8 | 2021-04-20 | Nuevas funciones, cambios, corrección de errores. |
Actualización 301 de Java SE 8 | 2021-07-20 | Nuevas funciones, cambios, corrección de errores. |
Java SE 9
Liberado | 21 de septiembre de 2017 |
---|---|
No. de PEC | 9 |
Java SE 9 estuvo disponible el 21 de septiembre de 2017, debido a la controvertida aceptación de la implementación actual de Project Jigsaw por parte del Comité Ejecutivo de Java, lo que llevó a Oracle a solucionar algunos problemas e inquietudes abiertas, y a refinar algunas cuestiones técnicas críticas. En los últimos días de junio de 2017, Java Community Process expresó un consenso casi unánime sobre el esquema del sistema modular propuesto.
- JSR 376: Modularización del JDK bajo Project Jigsaw ( Java Platform Module System )
- JavaDB se eliminó de JDK
-
JEP 193: Mangos de variables
: define un medio estándar para invocar los equivalentes de varias operaciones
java.util.concurrent.atomic
ysun.misc.Unsafe
- JEP 213: Moneda del proyecto de fresado : Permitir @SafeVarargs en métodos de instancia privados; Permitir que las variables efectivamente finales se utilicen como recursos en la declaración try-with-resources; Permitir diamante con clases anónimas si el tipo de argumento del tipo inferido es denotable; Complete la eliminación, comenzada en Java SE 8, del guión bajo del conjunto de nombres de identificadores legales; Soporte para métodos privados en interfaces
- JEP 222: jshell: Java Shell (bucle de lectura-evaluación-impresión) : JShell es una interfaz de línea de comandos REPL para el lenguaje Java.
- JEP 254: Cuerdas compactas
- JEP 263: Gráficos HiDPI: escala y tamaño automático
-
JEP 266: Más actualizaciones de concurrencia
: incluye una implementación Java de Reactive Streams , incluida una nueva
Flow
clase que incluía las interfaces proporcionadas anteriormente por Reactive Streams - JEP 268: catálogos XML
- JEP 282: jlink: Java Linker : crea una herramienta que puede ensamblar y optimizar un conjunto de módulos y sus dependencias en una imagen personalizada en tiempo de ejecución. Efectivamente permite producir un ejecutable completamente utilizable, incluida la JVM para ejecutarlo.
- JEP 295: Compilación anticipada : compilación anticipada proporcionada por GraalVM .
La primera versión candidata a la versión de Java 9 se lanzó el 9 de agosto de 2017. La primera versión estable de Java 9 fue el 21 de septiembre de 2017.
Historia
En JavaOne 2011, Oracle discutió las características que esperaban lanzar para Java 9 en 2016. Java 9 debería incluir un mejor soporte para montones de varios gigabytes, una mejor integración de código nativo, un recolector de basura predeterminado diferente ( G1 , para "tiempos de respuesta más cortos") y una JVM de autoajuste . A principios de 2016, el lanzamiento de Java 9 se reprogramó para marzo de 2017 y luego se pospuso cuatro meses más hasta julio de 2017.
Actualizaciones de Java 9
Liberación | Fecha de lanzamiento | Reflejos |
---|---|---|
Java SE 9 | 2017-09-21 | Versión inicial |
Java SE 9.0.1 | 2017-10-17 | Correcciones de seguridad y correcciones de errores críticos de octubre de 2017 |
Java SE 9.0.4 | 2018-01-16 | Lanzamiento final para JDK 9; Correcciones de seguridad y correcciones de errores críticos de enero de 2018 |
Java SE 10
Liberado | 20 de marzo de 2018 |
---|---|
No. de PEC | 12 |
OpenJDK 10 se lanzó el 20 de marzo de 2018, con doce nuevas funciones confirmadas. Entre estas características estaban:
- JEP 286: Inferencia de tipo de variable local
- JEP 296: Consolide el bosque JDK en un único repositorio
- JEP 304: Interfaz recolector de basura
- JEP 307: GC completo en paralelo para G1
- JEP 310: Uso compartido de datos de clase de aplicación
- JEP 312: Apretones de manos locales de subprocesos
- JEP 313: eliminar la herramienta de generación de encabezados nativos (javah)
- JEP 314: Extensiones adicionales de etiquetas de idioma Unicode
- JEP 316: Asignación de montón en dispositivos de memoria alternativos
- JEP 317: compilador JIT experimental basado en Java
- JEP 319: Certificados raíz
- JEP 322: Versiones de versiones basadas en el tiempo
El primero de estos JEP 286 Inferencia de tipo de variable local , permite que la var
palabra clave se utilice para variables locales con el tipo real calculado por el compilador. Entonces podemos hacer:
var list = new ArrayList<String>(); // infers ArrayList<String>
var stream = list.stream(); // infers Stream<String>
Actualizaciones de Java 10
Liberación | Fecha de lanzamiento | Reflejos |
---|---|---|
Java SE 10 | 2018-03-20 | Versión inicial |
Java SE 10.0.1 | 2018-04-17 | Correcciones de seguridad, 5 correcciones de errores |
Java SE 10.0.2 | 2018-07-17 | Versión final para JDK 10. Correcciones de seguridad, 7 correcciones de errores |
Java SE 11
Versión LTS | |
Liberado | 25 de septiembre de 2018 |
---|---|
No. de PEC | 17 |
JDK 11 se lanzó el 25 de septiembre de 2018 y la versión está actualmente abierta para correcciones de errores. Ofrece LTS o soporte a largo plazo. Entre otras, Java 11 incluye una serie de características nuevas, como:
- JEP 181: Control de acceso basado en Nest
- JEP 309: Constantes dinámicas de archivo de clase
- JEP 315: Mejorar los intrínsecos de Aarch64
- JEP 318: Epsilon: un recolector de basura sin operaciones
- JEP 320: eliminar los módulos Java EE y CORBA
- JEP 321: Cliente HTTP (estándar)
- JEP 323: Sintaxis de variable local para parámetros Lambda
- JEP 324: Acuerdo clave con Curve25519 y Curve448
- JEP 327: Unicode 10
- JEP 328: Registrador de vuelo
- JEP 329: Algoritmos criptográficos ChaCha20 y Poly1305
- JEP 330: Iniciar programas de código fuente de archivo único
- JEP 331: creación de perfiles de montón con poca sobrecarga
- JEP 332: Seguridad de la capa de transporte (TLS) 1.3
- JEP 333: ZGC: un recolector de basura escalable de baja latencia (experimental)
- JEP 335: Desaprovechar el motor JavaScript Nashorn
- JEP 336: Desaprovechar las herramientas y la API de Pack200
Se eliminaron varias funciones de versiones anteriores; en particular, los subprogramas de Java y Java Web Start ya no están disponibles. Los módulos JavaFX , Java EE y CORBA se han eliminado de JDK.
Actualizaciones de Java 11
Liberación | Fecha de lanzamiento | Reflejos |
---|---|---|
Java SE 11 | 2018-09-25 | Versión inicial |
Java SE 11.0.1 | 2018-10-16 | Seguridad y corrección de errores |
Java SE 11.0.2 | 2019-01-15 | Seguridad y corrección de errores |
Java SE 11.0.3 | 2019-04-16 | Nuevas funciones, seguridad y corrección de errores |
Java SE 11.0.4 | 2019-07-16 | Nuevas funciones, seguridad y corrección de errores;
La detección del sistema operativo Windows HotSpot identifica correctamente Windows Server 2019 |
Java SE 11.0.5 | 2019-10-15 | Nuevas funciones, seguridad y corrección de errores |
Java SE 11.0.6 | 2020-01-14 | Nuevas funciones, seguridad y corrección de errores |
Java SE 11.0.7 | 2020-04-14 | Nuevas funciones, seguridad y corrección de errores |
Java SE 11.0.8 | 14 de julio de 2020 | Nuevas funciones, seguridad y corrección de errores |
Java SE 11.0.9 | 2020-10-20 | Nuevas funciones, seguridad y corrección de errores |
Java SE 11.0.10 | 2021-01-19 | Nuevas funciones, seguridad y corrección de errores |
Java SE 11.0.11 | 2021-04-20 | Nuevas funciones, seguridad y corrección de errores |
Java SE 11.0.12 | 2021-07-20 | Nuevas funciones, seguridad y corrección de errores |
Java SE 12
Liberado | 19 de marzo de 2019 |
---|---|
No. de PEC | 8 |
Funciones de vista previa | Declaraciones de cambio mejoradas |
JDK 12 se lanzó el 19 de marzo de 2019. Entre otras, Java 12 incluye una serie de características nuevas, como:
- JEP 189: Shenandoah: un recolector de basura con poco tiempo de pausa (experimental)
- JEP 230: Conjunto de microbenchmark
- JEP 325: Cambiar expresiones (vista previa)
- JEP 334: API de constantes de JVM
- JEP 340: un puerto AArch64, no dos
- JEP 341: Archivos CDS predeterminados
- JEP 344: Colecciones mixtas cancelables para G1
- JEP 346: Devolver rápidamente la memoria comprometida no utilizada de G1
La función de vista previa Jep 325 amplía la switch
declaración para que también se pueda usar como una expresión y agrega una nueva forma de etiqueta de caso donde el lado derecho es una expresión. No se necesita ninguna declaración de ruptura. Para expresiones complejas yield
se puede usar una declaración. Esto se convierte en estándar en Java SE 14.
int ndays = switch(month) {
case JAN, MAR, MAY, JUL, AUG, OCT, DEC -> 31;
case APR, JUN, SEP, NOV -> 30;
case FEB -> {
if (year % 400 == 0) yield 29;
else if (year % 100 == 0) yield 28;
else if (year % 4 == 0) yield 29;
else yield 28; }
};
Actualizaciones de Java 12
Liberación | Fecha de lanzamiento | Reflejos |
---|---|---|
Java SE 12 | 2019-03-19 | Versión inicial |
Java SE 12.0.1 | 2019-04-16 | Nuevas correcciones de seguridad y nombres de la era japonesa |
Java SE 12.0.2 | 2019-07-16 | Se eliminaron algunos certificados de CA raíz . |
Java SE 13
Liberado | 17 de septiembre de 2019 |
---|---|
No. de PEC | 5 |
Funciones de vista previa | Declaraciones de cambio mejoradas , bloques de texto |
JDK 13 se lanzó el 17 de septiembre de 2019. Java 13 incluye las siguientes características nuevas, así como "cientos de pequeñas mejoras y miles de correcciones de errores".
Los bloques de texto JEP 355 permiten literales de cadena de varias líneas:
String html = """
<HTML lang="en">
<body>
<p>Hello, world</p>
</body>
</html>
""";
Actualizaciones de Java 13
Liberación | Fecha de lanzamiento | Reflejos |
---|---|---|
Java SE 13 | 2019-09-17 | Versión de disponibilidad general |
Java SE 13.0.1 | 2019-10-15 | Seguridad y corrección de errores |
Java SE 13.0.2 | 2020-01-14 | Seguridad y corrección de errores |
Java SE 14
Liberado | 17 de marzo de 2020 |
---|---|
No. de PEC | dieciséis |
Características notables | NullPointerExceptions útiles , declaraciones de cambio mejoradas |
Mudanzas notables | Eliminar el recolector de basura Concurrent Mark Sweep |
Funciones de vista previa | Coincidencia de patrones, por ejemplo , registros , bloques de texto |
Funciones de incubación | jpackager, acceso a memoria externa |
JDK 14 se lanzó el 17 de marzo de 2020. Java 14 incluye las siguientes características nuevas, así como "cientos de pequeñas mejoras y miles de correcciones de errores".
- JEP 305: Coincidencia de patrones, por ejemplo, de (Vista previa)
- JEP 343: Herramienta de embalaje (incubadora)
- JEP 345: Asignación de memoria compatible con NUMA para G1
- JEP 349: Transmisión de eventos JFR
- JEP 352: Búferes de bytes asignados no volátiles
- JEP 358: Excepciones útiles de puntero nulo
- JEP 359: Registros (vista previa)
- JEP 361: Cambiar expresiones (estándar)
- JEP 362: Dejar obsoleto los puertos Solaris y SPARC
- JEP 363: Quitar el recolector de basura Concurrent Mark Sweep (CMS)
- JEP 364: ZGC en macOS
- JEP 365: ZGC en Windows
- JEP 366: Dejar de lado la combinación ParallelScavenge + SerialOld GC
- JEP 367: eliminar las herramientas y la API de Pack200
- JEP 368: Bloques de texto (segunda vista previa)
- JEP 370: API de acceso a memoria externa (incubadora)
JEP 305, Pattern Matching, por ejemplo, simplifica el caso común de que una instanceof
prueba sea seguida inmediatamente por un molde, reemplazando
if (obj instanceof String) {
String s = (String) obj;
System.out.println( s.length() );
}
con
if (obj instanceof String s) {
System.out.println( s.length() );
}
JEP 359 Records permite la creación sencilla de clases simples e inmutables similares a Tuplas .
record Point(int x, int y) { }
Point p = new Point(3,4);
System.out.println( p.x() );
Actualizaciones de Java 14
Liberación | Fecha de lanzamiento | Reflejos |
---|---|---|
Java SE 14 | 2020-03-17 | Versión de disponibilidad general |
Java SE 14.0.1 | 2020-04-14 | Seguridad y corrección de errores |
Java SE 14.0.2 | 14 de julio de 2020 | Seguridad y corrección de errores |
Java SE 15
Liberado | 15 de septiembre de 2020 |
---|---|
No. de PEC | 14 |
Características notables | Clases ocultas, ZGC ( recolector de basura ), Shenandoah (recolector de basura), bloques de texto |
Mudanzas notables | Motor JavaScript, puertos Solaris y SPARC |
Funciones de vista previa | Clases selladas , la coincidencia de patrones de instanceof , registros |
Funciones de incubación | Acceso a memoria externa |
JDK 15 se lanzó el 15 de septiembre de 2020. Java 15 agrega, por ejemplo, soporte para literales de cadenas de varias líneas (también conocidos como bloques de texto). Los recolectores de basura Shenandoah y Z (este último a veces abreviado como ZGC) están ahora listos para su uso en producción (es decir, ya no están marcados como experimentales). La compatibilidad con el sistema operativo Solaris de Oracle (y las CPU SPARC) se elimina (aunque todavía está disponible en, por ejemplo, Java 11). Se elimina el motor JavaScript Nashorn. También se eliminaron algunos certificados de CA raíz .
- JEP 339: Algoritmo de firma digital Edwards-Curve (EdDSA)
- JEP 360: clases selladas (versión preliminar)
- JEP 371: Clases ocultas
- JEP 372: eliminar el motor JavaScript Nashorn
- JEP 373: Reimplementar la API de DatagramSocket heredada
- JEP 374: Desactivar y desactivar el bloqueo sesgado
- JEP 375: Coincidencia de patrones, por ejemplo, de (Segunda vista previa)
- JEP 377: ZGC: un recolector de basura escalable de baja latencia
- JEP 378: Bloques de texto
- JEP 379: Shenandoah: un recolector de basura con poco tiempo de pausa
- JEP 381: eliminar los puertos Solaris y SPARC
- JEP 383: API de acceso a memoria externa (segunda incubadora)
- JEP 384: Registros (segunda vista previa)
- JEP 385: Desaprovechar la activación de RMI para su eliminación
JEP 360 Sealed Classes agrega clases selladas e interfaces que restringen qué otras clases o interfaces pueden extenderlas o implementarlas. Solo las clases especificadas en una permits
cláusula pueden extender la clase o interfaz.
package com.example.geometry;
public abstract sealed class Shape
permits Circle, Rectangle, Square {...}
Junto con los registros, las clases selladas son tipos de datos algebraicos , los registros son tipos de productos y las clases selladas son tipos de suma . Funcionan bien con otras características recientes como registros, expresiones de cambio y coincidencia de patrones, por ejemplo. Todos ellos forman parte de un sistema para "Coincidencia de patrones en Java", discutido por primera vez por Gavin Bierman y Brian Goetz , en septiembre de 2018.
Actualizaciones de Java 15
Liberación | Fecha de lanzamiento | Reflejos |
---|---|---|
Java SE 15 | 15 de septiembre de 2020 | Versión de disponibilidad general |
Java SE 15.0.1 | 2020-10-20 | Seguridad y corrección de errores |
Java SE 15.0.2 | 2021-01-19 | Seguridad y corrección de errores |
Java SE 16
Liberado | 16 de marzo de 2021 |
---|---|
No. de PEC | 17 |
Características notables | Puerto Windows / AArch64, jpackager, coincidencia de patrones , por ejemplo , registros |
Funciones de vista previa | Clases selladas |
Funciones de incubación | Vinculador externo , acceso a memoria externa |
JDK 16 se lanzó el 16 de marzo de 2021. Java 16 elimina las opciones de compilación Ahead-of-Time (y Graal JIT ). La implementación de Java en sí estaba y todavía está escrita en C ++ , mientras que a partir de Java 16, se permite C ++ 14 más reciente (pero aún no, por ejemplo, C ++ 17 o C ++ 20 ). El código también se movió a GitHub (eliminando el sistema de control de fuente Mercurial ).
- JEP 338: API de vectores (incubadora)
- JEP 347: Habilite las características del lenguaje C ++ 14
- JEP 357: migrar de Mercurial a Git
- JEP 369: migrar a GitHub
- JEP 376: ZGC: procesamiento de pila de subprocesos concurrente
- JEP 380: Canales de socket de dominio Unix
- JEP 386: Alpine Linux Port - aún no estable
- JEP 387: Elastic Metaspace
- JEP 388: puerto Windows / AArch64
- JEP 389: API de vinculador externo (incubadora)
- JEP 390: Advertencias para clases basadas en valores
- JEP 392: Herramienta de embalaje
- JEP 393: API de acceso a memoria externa (tercera incubadora)
- JEP 394: Coincidencia de patrones, por ejemplo
- JEP 395: Registros
- JEP 396: encapsular fuertemente los componentes internos de JDK de forma predeterminada
- JEP 397: Clases selladas (segunda vista previa)
Actualizaciones de Java 16
Liberación | Fecha de lanzamiento | Reflejos |
---|---|---|
Java SE 16 | 2021-03-16 | Versión de disponibilidad general |
Java SE 16.0.1 | 2021-04-20 | Actualización de la base de datos de la zona horaria, corrección de errores y actualizaciones de seguridad |
Java SE 16.0.2 | 2021-07-20 | Seguridad y corrección de errores |
Java SE 17
Versión LTS | |
Liberado | 14 de septiembre de 2021 |
---|---|
No. de PEC | 14 |
Características notables | Puerto macOS / AArch64, clases selladas |
Mudanzas notables | Compilador AOT , activación RMI |
Funciones de vista previa | Cambiar patrón de coincidencia |
Funciones de incubación | API de vector, función externa y API de memoria |
JDK 17 es la versión actual de soporte a largo plazo (LTS) desde septiembre de 2021. Java 17 es la segunda versión de soporte a largo plazo (LTS) desde que se cambió a la nueva cadencia de lanzamiento de 6 meses (la primera es Java 11).
- JEP 306: Restaurar la semántica de punto flotante siempre estricta
- JEP 356: Generadores de números pseudoaleatorios mejorados
- JEP 382: nueva canalización de renderizado de macOS
- JEP 391: puerto macOS / AArch64
- JEP 398: Desaproveche la API de applet para su eliminación
- JEP 403: encapsular fuertemente los componentes internos de JDK
- JEP 406: Coincidencia de patrones para conmutador (vista previa)
- JEP 407: Eliminar la activación de RMI
- JEP 409: Clases selladas
- JEP 410: eliminar el compilador experimental AOT y JIT
- JEP 411: Desaproveche el administrador de seguridad para su eliminación
- JEP 412: API de memoria y función ajena (incubadora)
- JEP 414: API de vector (segunda incubadora)
- JEP 415: Filtros de deserialización específicos del contexto
Actualizaciones de Java 17
Liberación | Fecha de lanzamiento | Reflejos |
---|---|---|
Java SE 17 | 2021-09-14 | Versión de disponibilidad general: soporte a largo plazo |
Java SE 18
Liberado | Marzo 2022 |
---|---|
No. de PEC | TBC |
Características notables | TBC |
Mudanzas notables | TBC |
Funciones de vista previa | TBC |
Funciones de incubación | TBC |
JDK 18 se encuentra ahora en desarrollo activo, que saldrá en marzo de 2022 si continúan los ciclos de lanzamiento actuales de 6 meses.
Actualizaciones de Java 18
Liberación | Fecha de lanzamiento | Reflejos |
---|---|---|
Última compilación | 2022-03-xx Por confirmar | Compilaciones de acceso anticipado: compilación 17 (30 de septiembre de 2021) |
Funciones futuras
- Proyecto Valhalla : Tipos de valor , objetos sin identidad pero con una distribución de memoria eficiente.
- Proyecto Panamá : Interoperabilidad mejorada con código nativo , para permitir que el código fuente de Java llame a funciones y use tipos de datos de otros lenguajes, de una manera que sea más fácil y tenga mejor desempeño que en la actualidad.
- Project Loom : subprocesos virtuales , una alternativa liviana programada en modo de usuario a los subprocesos administrados por el sistema operativo estándar. Los subprocesos virtuales se asignan a los subprocesos del sistema operativo en una relación de varios a varios, en contraste con la relación de varios a uno de la implementación original de subprocesos verdes en las primeras versiones de Java.
Implementaciones
La plataforma Java con soporte oficial , desarrollada por primera vez en Sun y ahora administrada por Oracle, es Java SE . Lanzamientos basados en el proyecto OpenJDK , un proyecto gratuito y de código abierto con un modelo de desarrollo abierto . Sin embargo, existen otras implementaciones de Java, en parte debido a la historia temprana de Java como software propietario . Por el contrario, algunas implementaciones se crearon para ofrecer algunos beneficios sobre la implementación estándar, a menudo como resultado de algún área de investigación académica o patrocinada por empresas. Muchas distribuciones de Linux incluyen compilaciones de OpenJDK a través del proyecto IcedTea iniciado por Red Hat , que proporciona un entorno de compilación e integración más sencillo .
Visual J ++ y Microsoft Java Virtual Machine se crearon como implementaciones incompatibles. Después de la demanda de Sun v. Microsoft , Microsoft la abandonó y comenzó a trabajar en la plataforma .NET . En 2021, Microsoft comenzó a distribuir "Microsoft Build of OpenJDK" compatible para Java 11 primero y luego también para Java 17. Sus compilaciones son compatibles con Windows, pero también con Linux y macOS .
Hay disponibles otras implementaciones patentadas de Java, como Zing de Azul ; Además, Azul ofrece compilaciones OpenJDK de código abierto certificadas bajo el nombre de Zulu.
Antes del lanzamiento de OpenJDK, mientras que la implementación de Sun todavía era propietaria, el proyecto GNU Classpath se creó para proporcionar una implementación gratuita y de código abierto de la plataforma Java. Desde el lanzamiento de JDK 7, cuando OpenJDK se convirtió en la implementación de referencia oficial, la motivación original para el proyecto GNU Classpath desapareció casi por completo, y su último lanzamiento fue en 2012.
El proyecto Apache Harmony se inició poco antes del lanzamiento de OpenJDK. Después del lanzamiento del código fuente inicial de Sun, el proyecto Harmony continuó, trabajando para proporcionar una implementación bajo una licencia laxa , en contraste con la licencia protectora elegida para OpenJDK. Más tarde, Google desarrolló Android y lo lanzó bajo una licencia laxa. Android incorporó partes del proyecto Harmony, complementado con ART y la propia máquina virtual Dalvik de Google . Apache Harmony se ha retirado desde entonces y Google ha cambiado sus componentes Harmony por otros equivalentes de OpenJDK.
Tanto Jikes como Jikes RVM son proyectos de investigación de código abierto que desarrolló IBM.
Existen varias otras implementaciones que comenzaron como software propietario, pero ahora son de código abierto. IBM desarrolló inicialmente OpenJ9 como el J9 propietario, pero desde entonces ha vuelto a otorgar la licencia del proyecto y lo ha donado a la Fundación Eclipse . JRockit es una implementación propietaria que fue adquirida por Oracle e incorporada en versiones posteriores de OpenJDK.
Referencias
enlaces externos
- Descargas oficiales de Java SE
- Historia temprana de Java
- Lista completa de cambios para J2SE 1.3
- Lista completa de cambios para J2SE 1.4
- Lista completa de cambios para J2SE 5.0
- Lista completa de cambios para Java SE 6
- Sitio de desarrollo de Mustang para Java SE 6
- Notas de la versión de Java SE 7
- Versiones compatibles con Sun Java y EOL
- Archivo de descargas para la versión anterior de Java