Java — Version Evolution

Praveen Kumar
4 min readApr 8, 2022

--

Evolution of Java:

Java has evolved from humble beginnings to power a large share of today’s digital world, by providing the reliable platform upon which many services and applications are built. New, innovative products and digital services designed for the future continue to rely on Java, as well.

  • Sun Microsystems released its first public implementation on January 23, 1996 as Java JDK 1.0. This is the first stable version.
  • On February 19, 1997, JDK 1.1 version was released with many new library elements, redefined the way of handling events, and reconfigured most of the libraries of 1.0 and deprecated some features defined by 1.0. Added inner class, JavaBeans, JDBC, RMI, JIT (Just In time) compiler.
  • On December 08, 1998, J2SE 1.2 version was released with Added support for many features, such as Swing and Collection Framework. The methods suspend(), resume() and stop() of Thread class were deprecated.
  • Then, on May 08, 2000, J2SE 1.3 version was released with a very small improvement, as it just improved the development environment.
  • On February 06, 2002, J2SE 1.4 version added some upgrades such as the new keyword assert, chained exception and a channel-based I/O subsystem. Also added some feature to the collection framework and the Networking classes.
  • On September 30, 2004, J2SE 5.0 version was added with the significant new features added to this version are — Generics, Annotation, Autoboxing and Auto-unboxing, Enumeration, for-each, variable-length argument, Static import, Formatted I/O, Concurrency utilities.
  • On December 11, 2006, Java SE 6 version the API libraries and several new packages got enhanced and offered improvements to the run time. It supports JDBC 4.0.
  • Later, on July 28, 2011, Java SE 7 version added JVM support for dynamic language, String in the switch, Automatic resource management in try-statement, support for underscore in integers, binary integer literals etc.
  • Then, on March 18, 2014, Java SE 8 version added Date and time API, Repeating annotation, JavaFX.
  • On September 21, 2017, Java SE 9 version added Variable handles, Java Shell(JShell is a REPL command-line interface for the Java language), Compact Strings, HiDPI graphics: automatic scaling and sizing, XML Catalogs, jlink(The Java Linker) and JavaDB was removed from JDK.
Java Evolution Roadmap.
  • OpenJDK 10 was released on March 20, 2018, with many new features confirmed, such as, Local-Variable Type Inference, Garbage-Collector Interface, Application Class-Data Sharing, Thread Local-Handshakes, Time-Based Release Versioning etc.
  • JDK 11 was released on September 25, 2018 and it includes a number of new features, such as, Nest-Based Access Controls, Dynamic Class-File Constants, HTTP Client, Local-Variable syntax for Lambda parameters, Transport Layer Security(TLS), etc.
  • JDK 12 was released on March 19, 2019 and it includes a number of new features, such as, Microbenchmark Suite, Switch Expressions, JVM Constants API, Default CDS Archives, etc.
  • JDK 13 was released on September 17, 2019 and includes a number of new features, such as, Dynamic CDS Archives, ZGC: Uncommit Unused Memory, Reimplement the Legacy Socket API, Switch Expressions and Text Blocks.
  • JDK 14 was released on March 17, 2020 and it includes a number of new features, such as, Pattern Matching for instanceof, Packaging Tool, JFR Event Streaming, Helpful NullPointerExceptions, Records, ZGC(Z Garbage Collectors) on Windows & Mac OS, Foreign-Memory Access API, etc.
  • JDK 15 was released on September 15, 2020. Java 15 adds support for multi-line string literals(aka Text Blocks), Removed Nashorn JavaScript Engine, Sealed & Hidden Classes, Records, Switch Expressions, and Pattern matching for instance-of, etc.
  • JDK 16 was released on March 16, 2021. Java 16 removes Ahead-of-Time-compilation (and Graal JIT) options. It includes a number of new features, such as, Foreign Linker API, Packaging Tool, etc.
  • JDK 17 is the current long-term-support(LTS) release since September 2021. Java 17 is the 2nd long-term support (LTS) release since switching to the new 6-month release cadence. It includes a number of new features, such as, Pattern Matching for switch, Remove RMI Activation, Vector API, Foreign Function and Memory API, Content-Specific Deserialization Filters, Deprecate Security Manager for Removal, Enhanced Pseudo-Random Number Generators, Restore always strict Floating-Point Semantics, Sealed Classes, etc.
  • JDK 18 was released on March 22, 2022 and it includes a number of new features, such as, UTF-8 by default, Simple web-server, Code snippets in Java API Documentation, Reimplement Core Reflection with Method handles, Vector API, Internet-Address Resolution SPI, Foreign Function and Memory API, Pattern Matching for switch and Deprecate Finalization for Removal.
  • JDK 19 is now under active development, due out in September 2022 if the current 6-month release cycles continue.

Next part coming soon. Happy Learning!

--

--