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.
JAVA VERSION HISTORY
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 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, 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.
JDK 1.0 (January 23, 1996):
JDK 1.1 (February 19, 1997):
J2SE 1.2 (December 8, 1998):
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 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, 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 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.
J2SE 1.3 (May 8, 2000):
J2SE 1.4 (February 6, 2002):
Java SE 5 (September 30, 2004):
Java SE 6 (December 11, 2006):
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 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 7 (July 28, 2011):
Java SE 8 (March 18, 2014):
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 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 9 (September 21, 2017):
Java SE 10 (March 20, 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 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 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 11 (September 25, 2018):
Java SE 12 (March 19, 2019):
Java SE 13 (September 17, 2019):
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 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 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 14 (March 17, 2020):
Java SE 15 (September 16, 2020):
Java SE 16 (March 16, 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 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 17 (September 14, 2021):
Java SE 18 (March 22, 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 SE 19 (September 20, 2022):
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.