Java Version History

Java is one of the world’s most popular programming languages. It is a high-level language that is platform-independent. It can run on any platform that has a Java Virtual Machine (JVM).

Java was created in the early 1990s. James Gosling, Patrick Naughton, and Mike Sheridan developed it while working at Sun Microsystems. Later, Sun Microsystems was acquired by Oracle Corporation. The first public release of Java, Java 1.0, was launched in 1995. Since its inception, Java has gone through many changes and updates. It has gained huge popularity, powering everything from desktop and mobile applications to web and enterprise systems.

In this article, we’ll take a look at the Java version history. Starting from the first version to the latest version, we’ll discuss their features, improvements, and changes.

Java Version History

JDK 1.0 (January 23, 1996):

JDK 1.0 was the first stable version of Java, released by Sun Microsystems in 1996. It was primarily designed for interactive television and set-top boxes. The major features of JDK 1.0 include applets, AWT, and JDBC.

JDK 1.1 (February 19, 1997):

JDK 1.1 was released in 1997 and introduced a new event model, inner classes, and JavaBeans. It also included improvements to AWT and JDBC.

J2SE 1.2 (December 8, 1998):

J2SE 1.2, also known as Java 2, was a major release that introduced many new features, including the Swing GUI toolkit, Java Naming and Directory Interface (JNDI), and Java Servlet API. It also added support for the Java Foundation Classes (JFC) and collections.

J2SE 1.3 (May 8, 2000):

J2SE 1.3 introduced the HotSpot virtual machine, which improved performance and reduced memory usage. It also added support for regular expressions, XML parsing, and the Java Sound API.

J2SE 1.4 (February 6, 2002):

J2SE 1.4 introduced assert, which made it easier to write bug-free code. It also added support for regular expressions and the Preferences API. Other new features included Java Web Start and Java Management Extensions (JMX).

Java SE 5 (September 30, 2004):

Java SE 5, was a major release that introduced many new features, including generics, annotations, autoboxing, and varargs. It also added support for the Java SE Compiler API and enhanced JMX.

Java SE 6 (December 11, 2006):

Java SE 6 added new features such as dynamic scripting languages, JDBC 4.0, improved support for web services, and improvements to the JVM. It also included the XML Digital Signature API, JDBC RowSet Enhancements, and Web Services Metadata. However, Java SE 6 was officially declared end-of-life in February 2013.

Java SE 7 (July 28, 2011):

Java SE 7 introduced several new features. These features include the Fork/Join Framework, the ability to switch on strings, and multi-catch exceptions. It also includes a new try-with-resources statement for automatic resource management. Java SE 7 added support for the G1 garbage collector and the JavaFX GUI toolkit. It also introduced the invoke dynamic bytecode instruction, which facilitates the implementation of dynamic languages on the Java SE Virtual Machine.

Java SE 8 (March 18, 2014):

Java SE 8 was a major release that introduced many new features, including lambda expressions, the Stream API, functional interfaces, and the Date and Time API. Lambda expressions allow for functional programming in Java, and the Stream API provides a powerful and concise way to process collections of data. It also included improvements to the Nashorn JavaScript engine and the JavaFX GUI toolkit.

Java SE 9 (September 21, 2017):

Java SE 9 introduced a modular system, which allows for better code isolation and improved security. It also included several other new features, such as the JShell interactive shell, the HTTP/2 Client API, Java SE Platform Module System, improvements to the Garbage Collector, and enhancements to the Process API. The Java SE Platform Module System provides a way to modularize the Java SE platform, making it easier to manage dependencies and improve security.

Java SE 10 (March 20, 2018):

Java SE 10 has introduced two new features. The first is Local-Variable Type Inference which allows declaring a variable without specifying its type. This makes the code cleaner and more concise. The second is Parallel Full GC for the G1 Garbage Collector, which improves the performance of applications that generate a lot of garbage.

Java SE 11 (September 25, 2018):

Java SE 11 is a long-term support (LTS) release. It introduced several new features, including support for the HTTP Client API, making it easier to send HTTP requests and handle responses. It also allows launching single-file programs directly without compilation, making it easier to write and run small scripts. Additionally, it includes several new security enhancements to keep Java applications secure.

Java SE 12 (March 19, 2019):

Java SE 12 brought several new features and improvements. It introduced switch expressions, which make it easier to write concise code that switches on a value and returns a result. It also added support for Unicode 11.0, allowing developers to work with the latest set of characters.

Java SE 13 (September 17, 2019):

Java SE 13 brought several new features and improvements, including text blocks for cleaner multi-line string formatting, improvements to the Garbage Collector, and enhancements to the switch statement.

Java SE 14 (March 17, 2020):

Java SE 14 introduced records, a new feature that allows developers to write concise classes with a set of automatically generated methods. It also introduced pattern matching, for instance, which makes it easier to write code that checks the type of an object. Additionally, it included improvements to the Garbage Collector.

Java SE 15 (September 16, 2020):

Java SE 15 introduced several new features and improvements, including sealed classes and interfaces for improved security, text blocks enhancements, and improvements to the Garbage Collector.

Java SE 16 (March 16, 2021):

Java SE 16 brought several new features and improvements, including record enhancements, pattern matching enhancements, and a new vector API for performing calculations on vectors and matrices.

Java SE 17 (September 14, 2021):

Java SE 17 is the new long-term support (LTS) release. This release includes several new features and improvements, such as Pattern Matching for Switch, Sealed Classes, and Foreign Function & Memory API. With Pattern Matching, developers can pass objects to switch functions and check for a particular type, which improves code readability. Sealed Classes provide more control over who can derive a subclass from a given class. The Foreign Function & Memory API offers an efficient way to call native functions and access memory outside the JVM.

Java SE 18 (March 22, 2022):

Java SE 18 offers several new features, including Simple Web Server, a Vector API, and Structured Concurrency. The Simple Web Server feature provides a convenient way to set up a web server for testing purposes. The Vector API enables developers to accelerate vector calculations, which can help improve performance in certain use cases. The Structured concurrency feature offers a unified approach to asynchronous programming, which can help simplify code and make it easier to reason about. UTF-8 was set as the default character encoding used when reading files. Before that, the operating system’s encoding was used by default.

Java SE 19 (September 20, 2022):

Java SE 19 release includes exciting features such as Virtual Threads, Structured Concurrency, Foreign Functions & Memory API. The Virtual Threads feature offers a lightweight mechanism for creating and managing threads, which can improve performance and reduce resource consumption. Structured concurrency simplifies the management of asynchronous tasks. The Foreign Function and Memory API enable developers to call native functions and access memory outside the JVM.

Java Version History Table:

java version history table

Conclusion:

In summary, Java has come a long way since its inception in the mid-1990s. With each new release, Java has brought new features and improvements, making it one of the most widely used programming languages in the world. As Java continues to evolve, it will be interesting to see what new features and improvements it brings in the future.

Leave a Reply

Your email address will not be published. Required fields are marked *