History
Java was developed by James Gosling at Sun Microsystems in the early 1990s as part of the Green Project, initially targeting embedded systems such as set-top boxes and appliances. Originally named Oak (after a tree outside Gosling’s office), it was later renamed Java because the name Oak was already trademarked and Java sounded more unique and appealing.
Release & Key Concept
- Java was officially released in 1995 with the key philosophy:
- Write Once, Run Anywhere (WORA)
- This allowed programs to run on any system with a Java Virtual Machine (JVM), making Java platform-independent.
Popularity & Growth
Java gained popularity through web applets, which ran inside browsers like Netscape Navigator. These applets enabled interactive web experiences before JavaScript became dominant.
Ownership Change
In 2010, Oracle Corporation acquired Sun Microsystems and has since continued the development and maintenance of Java.
Key Points
- Developed by James Gosling at Sun Microsystems
- Initially part of the Green Project for embedded systems
- Original name: Oak (renamed due to trademark issue)
- Renamed to Java (catchy and inspired by coffee ☕)
- Released in 1995
- Introduced WORA (Write Once, Run Anywhere)
- Runs on JVM (Java Virtual Machine)
- Popularized through web applets
- Applets ran on Netscape Navigator
- Oracle Corporation acquired Sun Microsystems in 2010
- Java is now maintained by Oracle
Editions
- Java SE: Core language + standard libraries (collections, I/O, concurrency, networking).
- Jakarta EE (formerly Java EE): Enterprise specifications/APIs for server-side apps (servlets, JPA, CDI, etc.).
- Java ME: Subset for constrained devices (less common today).
Java Standard Edition History
| Version | Release Date | Key Features / Notes |
|---|---|---|
| JDK 1.0 | January 1996 | Initial release — basic core API and JVM |
| JDK 1.1 | February 1997 | Inner classes, JDBC, RMI, JavaBeans |
| J2SE 1.2 | December 1998 | Collections framework, Swing, JIT compiler |
| J2SE 1.3 | May 2000 | HotSpot JVM, RMI over IIOP |
| J2SE 1.4 | February 2002 | assert keyword, NIO, logging API, XML parsing |
| Java SE 5 | September 2004 | Generics, enhanced for-loop, annotations, enums, autoboxing |
| Java SE 6 | December 2006 | Scripting engine (JS), JVM monitoring, web services improvements |
| Java SE 7 | July 2011 | try-with-resources, NIO.2, Diamond operator |
| Java SE 8 | March 2014 | Lambda, Streams, Optional, Date/Time API |
| Java SE 9 | September 2017 | JPMS (modules), JShell |
| Java SE 10 | March 2018 | var keyword |
| Java SE 11 | September 2018 | LTS, HTTP Client API |
| Java SE 12 | March 2019 | Switch expressions (preview) |
| Java SE 13 | September 2019 | Text blocks (preview) |
| Java SE 14 | March 2020 | Records (preview) |
| Java SE 15 | September 2020 | Sealed classes (preview) |
| Java SE 16 | March 2021 | Records (final) |
| Java SE 17 | September 2021 | LTS, sealed classes |
| Java SE 18 | March 2022 | Simple web server |
| Java SE 19 | September 2022 | Virtual threads (preview) |
| Java SE 20 | March 2023 | Pattern matching improvements |
| Java SE 21 | September 2023 | LTS, virtual threads (final) |
| Java SE 22 | March 2024 | Foreign Function & Memory API improvements |
| Java SE 23 | September 2024 | String templates (preview), performance updates |
| Java SE 24 | March 2025 | Continued Project Loom & Panama enhancements |
| Java SE 25 | September 2025 | LTS, stability, performance, and long-term support focus |
| Java SE 26 | March 2026 | Ongoing enhancements (preview features, performance tuning) |
Java Enterprise Edition History (J2EE / Java EE Versions)
| Version | Release Year | Key Features / Notes |
|---|---|---|
| J2EE 1.2 | 1999 | Initial enterprise platform (Servlets, JSP, EJB) |
| J2EE 1.3 | 2001 | Improved EJB, JMS, XML support |
| J2EE 1.4 | 2003 | Web services (SOAP), XML-based APIs |
| Java EE 5 | 2006 | Simplified EJB 3.0, annotations introduced |
| Java EE 6 | 2009 | CDI, Bean Validation, REST (JAX-RS) |
| Java EE 7 | 2013 | WebSocket API, JSON Processing (JSON-P) |
| Java EE 8 | 2017 | JSON Binding (JSON-B), Security API improvements |
Java Enterprise Edition History(Jakarta EE Versions)
Post Oracle → Eclipse Transition
| Version | Release Year | Key Features / Notes |
|---|---|---|
| Jakarta EE 8 | 2019 | Same as Java EE 8 (package still javax.*) |
| Jakarta EE 9 | 2020 | Namespace change from javax.* → jakarta.* |
| Jakarta EE 9.1 | 2021 | Minor updates, Java SE 11 support |
| Jakarta EE 10 | 2022 | Core Profile, improved CDI, REST enhancements |
| Jakarta EE 11 | 2023 | Java 17 support, modernization of APIs |
| Jakarta EE 12 | 2024 | Performance improvements, cloud-native focus |
| Jakarta EE 13 | 2025 | Continued cloud-native and microservices enhancements |
| Jakarta EE 14 | 2026 | Ongoing improvements (lightweight runtimes, scalability) |