Java Evolution
Introduction
Java is a high-level, object-oriented, platform-independent programming language developed by
James Gosling and his team at Sun Microsystems. It was designed with the philosophy "Write
Once, Run Anywhere (WORA)", meaning Java programs can run on any device that has a Java
Virtual Machine (JVM).
Since its release in 1995, Java has continuously evolved with new features, performance
improvements, security enhancements, and support for modern application development such as
web, enterprise, mobile, cloud, and AI applications.
History of Java
1991: Sun Microsystems started the Green Project to develop software for consumer
electronic devices.
1991: James Gosling created a new programming language called Oak.
1995: Oak was renamed Java because Oak was already trademarked.
1995: Java 1.0 was officially released.
2009: Oracle Corporation acquired Sun Microsystems and became the owner of Java.
Present: Java is one of the world's most widely used programming languages for
enterprise, cloud, Android, big data, and AI applications.
Why was Java Developed?
Java was developed to overcome the limitations of C and C++.
Objectives
Platform independence
Object-oriented programming
Secure execution
Robust error handling
Multithreading support
Distributed computing
Automatic memory management
High performance using Just-In-Time (JIT) compilation
Evolution of Java Versions
Release
Version Major Features
Year
JDK 1.0 1996 First official release, AWT, Applets, JVM
JDK 1.1 1997 JDBC, RMI, Inner Classes, Reflection
J2SE 1.2 1998 Swing, Collections Framework, Java 2 platform
J2SE 1.3 2000 HotSpot JVM, JavaSound, JNDI improvements
J2SE 1.4 2002 Assertions, Regular Expressions, NIO, XML APIs
Generics, Enhanced for-loop, Autoboxing, Annotations, Enums,
J2SE 5.0 (1.5) 2004
Varargs
Java SE 6 2006 Performance improvements, Scripting API, JDBC 4.0
Java SE 7 2011 Try-with-resources, Diamond Operator, NIO.2, Strings in switch
Lambda Expressions, Stream API, Functional Interfaces, Date &
Java SE 8 2014
Time API
Module System (Project Jigsaw), JShell, Collection factory
Java SE 9 2017
methods
Java SE 10 2018 Local Variable Type Inference (var)
Java SE 11
2018 HTTP Client API, String methods, Long-Term Support
(LTS)
Java SE 12 2019 Switch expressions (Preview)
Java SE 13 2019 Text Blocks (Preview)
Java SE 14 2020 Records (Preview), Helpful NullPointerExceptions
Java SE 15 2020 Text Blocks, Sealed Classes (Preview)
Java SE 16 2021 Records, Pattern Matching (Preview)
Java SE 17 2021 Sealed Classes, Pattern Matching improvements, Long-Term
Release
Version Major Features
Year
(LTS) Support
Java SE 18 2022 UTF-8 as default charset, Simple Web Server
Java SE 19 2022 Virtual Threads (Preview), Record Patterns
Java SE 20 2023 Scoped Values, Pattern Matching improvements
Java SE 21 Virtual Threads, Sequenced Collections, Record Patterns, String
2023
(LTS) Templates (Preview)
Why Java Became Popular
Platform Independent (Write Once, Run Anywhere)
Object-Oriented Programming
Automatic Garbage Collection
Robust and Secure
Multithreading Support
Rich Standard Library
Strong Community Support
Enterprise Application Development
Cloud and Microservices Support
Cross-platform Compatibility
Applications of Java
Desktop Applications
Web Applications
Enterprise Applications
Android Applications
Banking Software
E-commerce Platforms
Cloud Computing
Big Data Technologies (e.g., Apache Hadoop)
Internet of Things (IoT)
Artificial Intelligence and Machine Learning Applications
Advantages of Java
1. Platform Independent
2. Object-Oriented
3. Secure
4. Robust
5. Portable
6. Multithreaded
7. Distributed
8. Dynamic
9. High Performance (JIT Compiler)
10. Easy to Learn and Maintain
Timeline
1991 ──────────────────────────────────────────────────────────────
Green Project Started (Sun Microsystems)
James Gosling developed "Oak"
1995 ──────────────────────────────────────────────────────────────
Oak renamed to Java
Java officially released
Motto: "Write Once, Run Anywhere (WORA)"
1996 ──────────────────────────────────────────────────────────────
JDK 1.0
• First official Java release
• JVM
• AWT
• Applets
1997 ──────────────────────────────────────────────────────────────
JDK 1.1
• JDBC
• RMI
• Reflection
• Inner Classes
1998 ──────────────────────────────────────────────────────────────
J2SE 1.2 (Java 2)
• Swing GUI
• Collections Framework
• Java 2 Platform
2000 ──────────────────────────────────────────────────────────────
J2SE 1.3
• HotSpot JVM
• JavaSound
• JNDI
2002 ──────────────────────────────────────────────────────────────
J2SE 1.4
• Assertions
• Regular Expressions
• NIO
• XML APIs
2004 ──────────────────────────────────────────────────────────────
J2SE 5.0 (1.5)
★ Biggest Language Update
• Generics
• Annotations
• Enums
• Autoboxing
• Enhanced for-loop
• Varargs
2006 ──────────────────────────────────────────────────────────────
Java SE 6
• Performance Improvements
• JDBC 4.0
• Compiler API
2009 ──────────────────────────────────────────────────────────────
Oracle acquired Sun Microsystems
2011 ──────────────────────────────────────────────────────────────
Java SE 7
• Diamond Operator
• Try-with-Resources
• NIO.2
• Strings in switch
2014 ──────────────────────────────────────────────────────────────
Java SE 8 (Most Popular Release)
★ Lambda Expressions
★ Stream API
★ Functional Interfaces
★ Date & Time API
★ Default Methods
2017 ──────────────────────────────────────────────────────────────
Java SE 9
• Module System (Project Jigsaw)
• JShell
• Collection Factory Methods
2018 ──────────────────────────────────────────────────────────────
Java SE 10
• var (Local Variable Type Inference)
Java SE 11 (LTS)
• HTTP Client API
• New String Methods
• Long-Term Support
2019 ──────────────────────────────────────────────────────────────
Java SE 12
• Switch Expressions (Preview)
Java SE 13
• Text Blocks (Preview)
2020 ──────────────────────────────────────────────────────────────
Java SE 14
• Records (Preview)
• Helpful NullPointerExceptions
Java SE 15
• Text Blocks
• Sealed Classes (Preview)
2021 ──────────────────────────────────────────────────────────────
Java SE 16
• Records
• Pattern Matching (Preview)
Java SE 17 (LTS)
★ Sealed Classes
★ Pattern Matching
★ Long-Term Support
2022 ──────────────────────────────────────────────────────────────
Java SE 18
• UTF-8 Default Charset
• Simple Web Server
Java SE 19
• Virtual Threads (Preview)
• Record Patterns
2023 ──────────────────────────────────────────────────────────────
Java SE 20
• Scoped Values
• Pattern Matching Improvements
Java SE 21 (LTS)
★ Virtual Threads
★ Sequenced Collections
★ Record Patterns
★ String Templates (Preview)
2024 ──────────────────────────────────────────────────────────────
Java SE 22
• Foreign Function & Memory API
• String Templates (Preview)
• Statements before super(...)
Java SE 23
• Markdown Documentation Comments
• Primitive Types in Patterns (Preview)
2025 ──────────────────────────────────────────────────────────────
Java SE 24
• Performance & JVM Improvements
• Stable Language Enhancements
Java SE 25 (LTS)
★ Structured Concurrency
★ Scoped Values
★ Compact Object Headers
★ Module Import Declarations
★ Primitive Pattern Matching
★ Generational Shenandoah GC
2026 ──────────────────────────────────────────────────────────────
Java SE 26
• Removal of Applet API
• Final-field integrity improvements
• Ahead-of-Time Object Caching
• Performance, JVM, and Security Enhancements