miércoles, 4 de diciembre de 2013

Características de las diferentes versiones de Java

A partir de Java 5 (1.5 en la numeración estándar de Oracle/Sun) se añaden a este lenguaje algunas características muy interesantes que intentan acercarlo a otros lenguajes "más modernos" diseñados "para el siglo XXI". Me refiero por ejemplo a Ruby, Python, Scala, etc. Enumero a continuación cada una de ellas, con la esperanza de poder hacer un artículo de cada una en el futuro.


Java 1.5


  • Genéricos (generics)
  • Bucle "for/in" (for/in loop)
  • Autoempaquetado/desempaquetado (autoboxing/unboxing)
  • Enumeraciones seguras con tipo (typesafe enums)
  • Argumentos variables (varargs)
  • Importaciones estáticas (static imports)
  • Anotaciones/metadatos (annotations/metadata)

Java 1.6


  • Servicios web y procesado de XML (web services and XML processing)
  • JDBC 4.0
  • Programación basada en anotaciones (annotation-based programming)
  • APIs de compilación de Java (Java compiler APIs)
  • APIs de escritorio (desktop APIs)
  • Scripting


Java 1.7


Las características de Java 7 y 8 están sacadas de la página web de OpenJDK, que tiene un formato bastante interesante en plan tabla "plain text".

Category    Description
================================================================================
vm          JSR 292: Support for dynamically-typed languages (InvokeDynamic)
            Strict class-file checking
lang        JSR 334: Small language enhancements (Project Coin)
core        Upgrade class-loader architecture
            Method to close a URLClassLoader
            Concurrency and collections updates (jsr166y)
i18n        Unicode 6.0
            Locale enhancement
            Separate user locale and user-interface locale
ionet       JSR 203: More new I/O APIs for the Java platform (NIO.2)
            NIO.2 filesystem provider for zip/jar archives
            SCTP (Stream Control Transmission Protocol)
            SDP (Sockets Direct Protocol)
            Use the Windows Vista IPv6 stack
            TLS 1.2
sec         Elliptic-curve cryptography (ECC)
jdbc        JDBC 4.1
client      XRender pipeline for Java 2D
            Create new platform APIs for 6u10 graphics features
            Nimbus look-and-feel for Swing
            Swing JLayer component
            Gervill sound synthesizer [NEW]
web         Update the XML stack
mgmt        Enhanced MBeans [UPDATED]

Java 1.8


Category    JEP     Description
================================================================================
--/--       126     Lambda Expressions & Virtual Extension Methods
            138     Autoconf-Based Build System
            160     Lambda-Form Representation for Method Handles
            161     Compact Profiles
            162     Prepare for Modularization
            164     Leverage CPU Instructions for AES Cryptography
            174     Nashorn JavaScript Engine
            176     Mechanical Checking of Caller-Sensitive Methods
            179     Document JDK API Support and Stability
vm/--       142     Reduce Cache Contention on Specified Fields
vm/gc       122     Remove the Permanent Generation
            173     Retire Some Rarely-Used GC Combinations
vm/rt       136     Enhanced Verification Errors
            147     Reduce Class Metadata Footprint
            148     Small VM
            171     Fence Intrinsics
core/--     153     Launch JavaFX Applications
core/lang   101     Generalized Target-Type Inference
            104     Annotations on Java Types
            105     DocTree API
            106     Add Javadoc to javax.tools
            117     Remove the Annotation-Processing Tool (apt)
            118     Access to Parameter Names at Runtime
            120     Repeating Annotations
            139     Enhance javac to Improve Build Speed
            172     DocLint
core/libs   103     Parallel Array Sorting
            107     Bulk Data Operations for Collections
            109     Enhance Core Libraries with Lambda
            112     Charset Implementation Improvements
            119     javax.lang.model Implementation Backed by Core Reflection
            135     Base64 Encoding & Decoding
            149     Reduce Core-Library Memory Usage
            150     Date & Time API
            155     Concurrency Updates
            170     JDBC 4.2
            177     Optimize java.text.DecimalFormat.format
            178     Statically-Linked JNI Libraries
            180     Handle Frequent HashMap Collisions with Balanced Trees
core/i18n   127     Improve Locale Data Packaging and Adopt Unicode CLDR Data
            128     BCP 47 Locale Matching
            133     Unicode 6.2
core/net    184     HTTP URL Permissions
core/sec    113     MS-SFU Kerberos 5 Extensions
            114     TLS Server Name Indication (SNI) Extension
            115     AEAD CipherSuites
            121     Stronger Algorithms for Password-Based Encryption
            123     Configurable Secure Random-Number Generation
            124     Enhance the Certificate Revocation-Checking API
            129     NSA Suite B Cryptographic Algorithms
            130     SHA-224 Message Digests
            131     PKCS#11 Crypto Provider for 64-bit Windows
            140     Limited doPrivileged
            166     Overhaul JKS-JCEKS-PKCS12 Keystores
web/jaxp    185     JAXP 1.5: Restrict Fetching of External Resources



Semántica de las categorías:

vm:     comp, gc, rt, svc
core:   lang, libs, i18n, net, sec, svc
client: gui, sound
web:    jaxp, jaxb, jaxws, corba

No hay comentarios:

Publicar un comentario