JDK 1.0 (January 23, 1996) oak
– Initial release
JDK 1.1 (February 19, 1997)
– Retooling of the AWT event model
– Inner classes added to the language
J2SE 1.2 (December 8, 1998) playground
This and subsequent releases through J2SE 5.0 were rebranded retrospectively Java 2 & version name “J2SE”
(Java 2 platform, Standard edition) replaced JDK to distinguish the base platform from
J2EE (java 2 platform, enterprise edition) and J2ME (java 2 platform, micro edition).
– Strictfp keyword
– Swing api integration into the core classes
– JVM equipped with a jit compiler
– Java plug-in
– Collections Framework
J2SE 1.3 (May 8, 2000) kestrel
– Hotspot jvm included
– JNDI included in core libraries
– Java platform debugger architecture (jpda)
– RMI was modified to support optional compatibility with corba
J2SE 1.4 (February 6, 2002) merlin
– assert keyword
– Regular expressions
– Exception chaining (allows an exception to encapsulate original lower-level exception)
– Internet protocol version 6 (IPV6) support
– Non-blocking nio (new input/output)
– Logging API
– Image i/o api for reading and writing images in formats like jpeg and png
– Integrated XML parser and XSLT processor (JAXP)
– Integrated security and cryptography extensions (JCE, JSSE, JAAS)
J2SE 5.0 (September 30, 2004) tiger [originally numbered 1.5]
– Generics: added
– Metadata: Annotations
– Autoboxing/unboxing: automatic conversions àExample: int to Integer and Integer to int
– Enumerations: enum keyword
– Swing: new look and feel added.
– Var args:
– Enhanced for each loop: the for loop syntax is extended with special syntax for iterating over each member of either an array or any iterable, such as the standard collection classes fix the previously broken semantics of the java memory model, which defines how threads interact through memory.
– Automatic stub generation for rmi objects.
– Static imports concurrency utilities in package java.util.concurrent.
– Scanner class for parsing data from various input streams and buffers.
– StringBuilder class (in java.lang package)
Java SE 6 (December 11, 2006) mustang
sun replaced the name “J2SE” with java se and dropped the “.0” from the version number.
Beta versions were released in february and june 2006, leading up to a final release that occurred on december 11, 2006.
The current revision is update 14 which was released in may 2009.
– Support for older win9x versions dropped.
– Dramatic performance improvements for the core platform, and swing.
– Improved web service support through JAX-WS JDBC 4.0 support
– Java compiler API: an API allowing a java program to select and invoke a java compiler programmatically.
– Upgrade of JAXB to version 2.0: including integration of a stax parser.
– Support for pluggable annotations
– Many GUI improvements, such as integration of swingworker in the API, table sorting and filtering, and true swing double-buffering (eliminating the gray-area effect).
Java 7 (a.k.a 1.7)
- Project Coin (small changes)
- new abstracted file-system API (NIO.2)(with support for virtual filesystems)
- improved concurrency libraries
- elliptic curve encryption
- more incremental upgrades
Java 8 (a.k.a 1.8)
- Lambda Expression
- Functional Interface
- Performance Improvement for HashMaps with Key Collisions
- Parallel Array Sorting
- Stringjoiner class
- Optional Class
- Remove permanent generation
- Annotation on Java Types
JDK 1.9 | Code Name : Jigsaw | Year : 2017
- JShell: the interactive Java REPL
- Private interface methods
- Process API Updates
- Light-Weight JSON API
- Money and Currency API for representing, transporting, and performing comprehensive calculations with Money and Currency
- Segmented Code Cache
- Improve Contended Locking