Versiones de Java

  • Period: to

    1983-1991 Inicios de Java

    Desarrollado en sus inicios por James Gosling de Sun Microsystems
    Conocido como Oak, posteriormente se le cambió el nombre a Green y finalmente a JAVA
  • Period: to

    1993-1994

    Gosling y compañía se preparan para mostrar el prototipo HotJava un navegador web modular y extensible compatible con los applets Java y fue la plataforma de demostración de Sun
  • 1995

    1995
    Aparece Java, un nuevo lenguaje de programación con soporte multiplataforma desarrollado por James Gosling y Sun MicroSystems
  • Versión 1.0(JDK 1.0)

    Primera versión del lenguaje informático Java. La cual, fue anunciada por el director científico de Sun Microsystems, John Gage y el vicepresidente de Netscape, Marc Andreessen
  • Características Versión 1.0 (JDK 1.0 )

    -Contiene las clases principales, la máquina virtual y el API grafico de AWT.
    -Fue una gran innovación para el mundo de la tecnología, puesto que a partir de él, los expertos proporcionaron un lenguaje independiente de la plataforma y un entorno de ejecución ligero y gratuito para las plataformas con mayor fama.
    -Gracias a esta versión, los principales navegadores web añadieron, poco después, la posibilidad de ejecutar applets Java que estuvieran incrustadas en los sitios web.
  • Versión 1.1 (JDK 1.1)

    Se basó en incorporar varias clases que faltaban, tales como: Readers/Writers, Calendars y Bundles.
    La mayor aportación en la versión 1.1, sin duda, fue el hecho de añadir el estándar de JavaBeans y el API de JDBC (Java Database Connectivity) para la conexión a base de datos. Lo cual, se estima como un hecho de relevancia en la informática.
    También muestra una reestructuración intensiva del modelo de eventos AWT (Abstract Windowing Toolkit).
    Incluye clases internas o “inner classes".
  • Versión 1.2 (J2SE 1.2)

    Versión 1.2 (J2SE 1.2)
    Exhibió la llegada del framework de Collections y el API de Swing. Lo que, permite desarrollar interfaces de ventanas mucho más complejas.
    Contiene Java IDL, que es una implementación de IDL o “Interfaz para Descripción de Lenguaje” diseñada para la interoperabilidad con CORBA.
    Por primera vez, la máquina virtual de Sun fue equipada con un compilador “Just in Time” (JIT).
    Otras particularidades: Java Plug-in, colecciones o “collections”, la palabra reservada strictfp, etc.
  • Versión 1.3 (J2SE 1.3)

    Se añade soporte JNDI o “Java Naming and Directory Interface” en el paquete de librerías principales. Lo cual, anteriormente, solo estaba disponible como una extensión.
    En esta versión se da la inclusión de la máquina virtual de HotSpot JVM con compilación JIT. La cual, fue lanzada en abril de 1999 para la JVM de J2SE 1.2.
    Aquí RMI fue cambiado para que se basara en CORBA.
    Contiene JavaSound y Java Platform Debugger Architecture (JPDA).
  • Versión 1.4 (J2SE 1.4 )

    Se distingue de las demás versiones, por tratarse del primer lanzamiento de la plataforma Java desarrollado bajo del proceso de la Comunidad Java como “JSR 59”
    Añade API I/O para la lectura y escritura de imágenes en formatos como JPEG o PNG. Al igual que Logging API (Specified in JSR 47.).
    También se incorpora un potente soporte de XML y Expresiones Regulares.
    Cuenta con seguridad integrada y extensiones criptográficas, tales como: JCE, JSSE, JAAS. Además de Java Web Start incluido.
  • Versión 1.5 (J2SE 5.0)

    Etiquetación de las clases o los métodos con datos adicionales.
    Ampliación en cuanto al soporte de APIs que están orientadas a programación concurrente.
    La palabra reservada “enum” crea una typesafe; lista ordenada de valores (como Dia.LUNES, Dia.MARTES, etc.). Lo cual, solo se podía llevar a cabo por constantes enteras o clases construidas de forma manual, anteriormente.
    Muestra un “bucle for” mejorado.
  • Versión 1.6 (Java SE 6)

    Añade el motor Rhino de Mozilla, que se trata de una implementación del también reconocido lenguaje de programación JavaScript en el Java.
    Mejoras en su rendimiento y también en la interfaz gráfica.
    Incluye un cliente completo de servicios web
    Tiene soporte para las ultimas especificaciones para servicios web. Tales como: JAX-WS 2.0, JAXB 2.0, STAX y JAXP.
    Añade un novedoso marco de trabajo y APIs que permiten combinar Java con lenguajes dinámicos (PHP, Python, Ruby y JavaScript).
  • Cambio de dueño

    Cambio de dueño
    Java es adquirida por Oracle
  • Versión 1.7 (Java SE 7)

    Julio 2011
    2006-2008 estaba en desarrollo.
    Su nombre clave es Dolphin
    Tiene soporte para XML dentro de su propio lenguaje. Al igual que para closures.
    Presenta introducción de anotaciones estándar para detectar fallos en el software.
    Maneja un nuevo concepto de superpaquete.
    También añade: Nueva API para el manejo de Días y Fechas, la cual reemplazará las antiguas clases Date y Calendar, Java Module System, Java Kernel y la posibilidad de operar con clases BigDecimal usando operandos
  • Versión 8 (Java SE 8)

    Versión 8 (Java SE 8)
    Marzo 2014
    versión que cuenta con el soporte de expresiones Lambda y uso de streams
    De forma completa, incorporó la librería JavaFX dentro de la JDK de Java.
    Incluye una notable mejora en torno a la seguridad, concurrencia y la integración de JavaScript. Esto último, debido al Proyecto Nashorn para disponer de un engine JavaScript.
    Dentro de su esquema a un enfoque más funcional, también aparecen las transformaciones MapReduce.
  • Versión 9 (Java SE 9)

    Se puede encontrar el “Project Jigsaw” dentro de esta versión de Java. Lo que, establece la modularización de la JDK.
    Ofrece un completo soporte para http 2.0.
    Se destaca también por contar con “Java Shell”; a partir del cual, será posible trabajar e interactuar al mismo tiempo al estilo “Read–eval–print loop” o RELP.
  • Versión 10 (Java SE 10)

    finalidad de garantizar un soporte prolongado cada año y medio
    Se añade, de manera experimental, el compilador JIT Graal implementado en Java en la plataforma Linux.
    La presente versión incluye varios certificados raíz al keystore añdido para permitir que las conexiones TLS funcionen por defecto.
    Al instaurar la funcionalidad añadida en javac, se elimina la funcionalidad javah. De forma que, esta última fue mejorada y sustituida por javac directamente.
  • Versión 11 (Java SE 11)

    Proporciona una versión LTS en la que las grandes empresas confiarán como base para todos sus desarrollos.
    Soporta Unicode 10 con 16018 nuevos caracteres soportados, 128 nuevos emojis y 19 símbolos nuevos para el estándar en televisiones 4K.
  • Más características versión 11

    Se evidencia la eliminación de módulos Java EE y CORBA.
    En vista de que, estos fueron desaconsejados en versiones anteriores y así, la lista de paquetes incluye:
    xml.ws (JAX-WS, plus the related technologies SAAJ and Web Services Metadata)
    xml.bind (JAXB)
    activation (JAF)
    xml.ws.annotation (Common Annotations)
    corba (CORBA)
    transaction (JTA)
    se.ee (Aggregator module for the six modules above)
    xml.ws (Tools for JAX-WS)
    xml.bind (Tools for JAXB).
  • Versión 12 (Java SE 12 )

    Expresiones Switch (JEP 325); la cual se introdujo en fase preview y extiende dicha sentencia para ser utilizada como una expresión.
    Optimiza el recolector de basura G1 para devolver, de modo automático, un conjunto de memoria de Java al sistema operativo cuando está inactivo.
    Incluye una API para modelar descripciones nominales de archivos de clase clave y artefactos de tiempos de ejecución. A partir de la API de constantes en la JVM.
    Mejora el proceso de compilación del JDK,
  • Versión 15 (Java SE 15)

    Nuevas características
    Algoritmo de firma digital Edwards-Curve (EdDSA)
    Bloques de texto
    Clases ocultas
    Reimplementación de la antigua API DatagramSocket
    Recolectores de basura ZGC y Shenandoah (https://picodotdev.github.io/blog-bitix/2020/09/novedades-de-java-15/#nuevas-caracter%C3%ADsticas)
  • Versión 16 (Java SE 16)

    Nuevos recursos del lenguaje
    JEP 394 Pattern Matching for instanceof
    Mejoras de JVM
    JEP 376 ZGC Concurrent Thread Processing
    JEP 387 Elastic Metaspace
    Nuevas herramientas y bibliotecas
    JEP 380 Unix-Domain Socket Channels
    JEP 392 Packaging Tool
    Funciones de incubación y vista previa
    JEP 338 Vector API (Incubator)
    JEP 389 Foreign Linker API (Incubator)
    Mejora de la productividad de desarrolladores de OpenJDK (https://blogs.oracle.com/oracle-latinoamerica/llegada-de-java-16)