Java is a programming language that was created in the mid-1990s by James Gosling, Patrick Naughton, and Mike Sheridan at Sun Microsystems (now part of Oracle Corporation).
Here is a brief history of Java:
- In the early 1990s, Sun Microsystems began work on a project called Green, which was aimed at developing a programming language that could be used to control consumer electronics devices such as TVs and VCRs. The project was eventually shelved, but the team continued working on the language that would become Java.
- Java was first released to the public in 1995 as Java 1.0. It was designed to be platform-independent, meaning that code written in Java could be run on any computer or device that had a Java Virtual Machine (JVM) installed.
- Java quickly gained popularity among developers, thanks to its ease of use, object-oriented programming features, and its ability to run on any platform. In 1996, Sun Microsystems released Java 1.1, which added new features such as inner classes and JavaBeans.
- In 1998, Sun Microsystems released Java 2, which included a new version of the Java Virtual Machine and introduced the Java 2 Platform, Standard Edition (J2SE), Java 2 Platform, Enterprise Edition (J2EE), and Java 2 Platform, Micro Edition (J2ME).
- Java continued to evolve in the early 2000s, with the release of Java 5 in 2004, which added new features such as generics and annotations. In 2006, Sun Microsystems released Java 6, which included improvements to the Java Virtual Machine and better support for scripting languages.
- In 2010, Oracle Corporation acquired Sun Microsystems and took over development of Java. Since then, Java has continued to evolve, with the release of Java 7 in 2011, Java 8 in 2014, Java 9 in 2017, Java 10 in 2018, Java 11 in 2018, Java 12 in 2019, Java 13 in 2019, Java 14 in 2020, Java 15 in 2020, Java 16 in 2021, and Java 17 in 2021.
- Today, Java is one of the most widely used programming languages in the world, and is used to develop a wide range of applications, from desktop and mobile applications to enterprise-level systems and web applications.
Java Version History
Here is a brief history of Java versions:
- JDK 1.0 (January 23, 1996): The first release of Java included the Java Development Kit (JDK) and the Java Runtime Environment (JRE). It included applet support, basic I/O, and networking capabilities.
- JDK 1.1 (February 19, 1997): This release included the JavaBeans component architecture, the JDBC API for database connectivity, and the RMI (Remote Method Invocation) API for distributed computing.
- J2SE 1.2 (December 8, 1998): This release introduced the Swing GUI toolkit, which provided a more modern and flexible alternative to the original AWT (Abstract Window Toolkit). It also added support for internationalization, reflection, and the Java Naming and Directory Interface (JNDI).
- J2SE 1.3 (May 8, 2000): This release added the HotSpot JVM (Java Virtual Machine), which improved performance and introduced new garbage collection techniques. It also included the Java Sound API and the Java Secure Socket Extension (JSSE).
- J2SE 1.4 (February 6, 2002): This release added new language features such as assert statements, regular expressions, and a new type-safe enumeration class. It also included the Java Web Start technology for deploying desktop applications.
- J2SE 5.0 (September 30, 2004): This release introduced major language enhancements, including generics, annotations, autoboxing and unboxing of primitive types, and enhanced for-each loop. It also included the Java Management Extensions (JMX) API and the Java Compiler API.
- Java SE 6 (December 11, 2006): This release added support for scripting languages, improved JDBC support, and enhancements to the Java Desktop Integration Components (JDIC).
- Java SE 7 (July 28, 2011): This release introduced new language features such as switch statements with strings, the try-with-resources statement for automatic resource management, and support for dynamic languages.
- Java SE 8 (March 18, 2014): This release introduced lambda expressions, which enabled functional programming constructs to be used in Java. It also added the Stream API for working with collections and improved support for date and time handling.
- Java SE 9 (September 21, 2017): This release introduced the Java Platform Module System (JPMS), which enabled better modularization of Java applications. It also included support for HTTP/2 and introduced several new APIs.
- Java SE 10 (March 20, 2018): This release introduced local variable type inference, which allows the type of a local variable to be inferred from its initializer.
- Java SE 11 (September 25, 2018): This release introduced several new APIs and removed some deprecated features. It also added support for running Java applications in a Docker container.
- Java SE 12 (March 19, 2019): This release included several new features such as switch expressions, which allow a switch statement to return a value, and improvements to the garbage collector.
- Java SE 13 (September 17, 2019): This release introduced several new features such as text blocks and improvements to the switch statement.
- Java SE 14 (March 17, 2020): This release introduced several new features such as pattern matching for instanceof, records, and improved NullPointerException messages.
- Java SE 15 (September 15, 2020): This release introduced several new features such as sealed classes and interfaces and hidden classes.
- Java SE 16 (March 16, 2021)
- Java SE 17 (September 14, 2021)
- Java SE 18 (to be released by March 22, 2022)