Showing posts with label version history. Show all posts
Showing posts with label version history. Show all posts

Thursday, 24 April 2014

Overview of Java releases

This illustration highlights the changes that were introduced with each major Java release.

 
Here is a more detailed break down of the changes.

JDK 1.0 (1996)

  • Initial release

JDK 1.1 (1997)

  • Inner classes added
  • Java Beans introduced
  • RMI (Remote Method Invocation) added
  • Initial (Windows) JIT compiler
  • Reflection introduced - to reflect upon Class methods and fields
  • Object serialization for sending objects over the network
  • AWT (Abstract Window Toolkit) retooling for GUI enhancements
  • JDBC (Java Database Connectivity) to enable connectivity and SQL query support
  • Security enhancements - digital signatures, key signatures, access control lists

J2SE 1.2 (1998)

A slight re-branding was made from JDK to J2SE to properly distinguish from J2EE and J2ME.
  • Collections framework added
  • Keyword 'strictfp' added
  • Real JIT compiler is included with JVM
  • Swing API is integrated into core classes
  • Java IDL (Interface description language) for CORBA interoperability
  • Java plug-in added for Java applet support in web browsers

J2SE 1.3 (2000)

  • HotSpot JVM included - encompassing JIT compilation and adaptive optimization to further improve performance
  • Synthetic proxy classes - classes generated at runtime that are not in source code
  • Java Naming and Directory Interface (JNDI) included in core libraries
  • Java Platform Debugger Architecture (JPDA)
  • RMI compatibility with CORBA
  • JavaSound API

J2SE 1.4 (2002)

  • JAXP (Java API for XML Processing) added; an XML parser and XSLT processor
  • Regular expressions modeled after Perl
  • Chained exceptions introduced
  • IPv6 support added
  • NIO (New I/O) introduced for intensive I/O operations
  • Java Web Start
  • Preferences API
  • Logging API

J2SE 5.0 (2004)

  • Generics added
  • Annotations added
  • Auto-boxing/unboxing added
  • Enumerations - type safe, ordered list of values
  • Varargs
  • Enhanced for-each loop
  • Static imports
  • Scanner class: parses data from input streams and buffers
  • Concurrency utilities
    • Executor framework for invoking, scheduling and executing tasks
    • Concurrent collections: concurrent implementations of Map, List, and Queue
    • Atomic variable classes for atomically manipulating single variables 
    • Synchronizers: semaphores, mutexes, barriers, latches, and exchangers

Java SE 6 (2006)

Going forward, Sun renamed the library to Java SE.
  • JVM improvements: synchronization and compiler performance optimisations, garbage collection algorithms, and start-up performance
  • GUI improvements
  • Pluggable annotations allowing custom annotation processors
  • JAXB v2.0 (XML Binding) and addition of StAX parser (pull streaming XML with write capability)
  • JDBC v4.0 support
  • JAX-WS (XML Web Services)
  • Java Compiler API
  • Scripting language support

Java SE 7 (2011)

  • Strings in switch
  • try-with-resources Statement for automatic close of resource
  • Shorthand diamond operator <> for inferring generic type
  • @SafeVarargs annotation for disabling compiler warning when vararg is a non-refiable
  • Binary integer literals
  • Underscores in numeric literals

Java SE 8 (2014)


  • Lambda expressions (closures): an anonymous function that you can use to create delegates or expression tree types
  • New Date and Time API
  • Type annotations
  • Repeating annotations
  • Nashorn - lightweight high-performance JavaScript runtime



Read more at:
http://en.wikipedia.org/wiki/Java_version_history