Java History

History of Java

Java was developed by Sun Microsystems in 1991, under the leadership of James Gosling. Initially called Oak, it was renamed Java in 1995. It quickly gained popularity due to its “Write Once, Run Anywhere” philosophy, facilitated by the Java Virtual Machine (JVM). Over the years, Java has evolved through multiple versions, each introducing new features and performance enhancements.

The following table shows the history of Java versions and their features:

Version Year Features
JDK 1.0 1996 Initial release, applet support, AWT (Abstract Window Toolkit), Java.io, java.lang, java.net packages
JDK 1.1 1997 Inner classes, JavaBeans, RMI (Remote Method Invocation), JDBC, reflection, internationalization
J2SE 1.2 (Java 2) 1998 Swing, Collections framework, Java plug-in, security and cryptography enhancements
J2SE 1.3 2000 HotSpot JVM, JPDA (Java Platform Debugger Architecture), JNDI (Java Naming and Directory Interface)
J2SE 1.4 2002 Regular expressions, NIO (New I/O), assertions, logging API, image I/O API, exception chaining
J2SE 5.0 (1.5) 2004 Generics, enhanced for-loop, autoboxing/unboxing, annotations, enumerations, varargs, concurrency utilities
Java SE 6 2006 Scripting language support (JSR 223), compiler API, JAXB (Java Architecture for XML Binding), improved web service support
Java SE 7 2011 Try-with-resources, binary literals, diamond operator, multi-catch exceptions, NIO.2, fork/join framework, underscore in numeric literals
Java SE 8 2014 Lambda expressions, Stream API, Optional class, method references, default methods in interfaces, new Date and Time API (java.time)
Java SE 9 2017 Modular system (Project Jigsaw), JShell (interactive Java shell), collection factory methods, private methods in interfaces
Java SE 10 2018 Local variable type inference (var), garbage collector enhancements
Java SE 11 2018 New string methods (e.g., isBlank, lines, repeat), file methods (e.g., readString, writeString), HTTP Client API standardization
Java SE 12 2019 Switch expression enhancements, default JVM class data-sharing (CDS)
Java SE 13 2019 Text blocks (multi-line string literals), dynamic CDS archives
Java SE 14 2020 Switch expressions (finalized), records (preview), pattern matching for instanceof (preview)
Java SE 15 2020 Sealed classes (preview), hidden classes, new garbage collectors (ZGC improvements, Shenandoah)
Java SE 16 2021 Pattern matching for instanceof, records (standardized), vector API (incubator)
Java SE 17 2021 Sealed classes (standardized), foreign function and memory API (incubator), removal of deprecated features
Java SE 18 2022 UTF-8 by default, simple web server, code snippets in API documentation
Java SE 19 2022 Structured concurrency (incubator), virtual threads (preview), pattern matching enhancements
Java SE 20 2023 Scoped values, vector API enhancements, more incubator and preview features related to structured concurrency, pattern matching

This table shows the gradual evolution of Java and the incorporation of modern features while maintaining backward compatibility.

Course Video

YouTube Reference :