Interview Questions
java Advanced Interview questions
Java Freshers Interview Questions
Java interview questions
Java Interview Questions
Java Interview Questions
Java Version History
Java is a programming language and computing platform first released by Sun Microsystems in 1995
- Java 1.0 (January 1996):
- Initial release of Java, introducing the Java programming language and core libraries.
- Key features include platform independence, object-oriented programming, and a robust security model.
- Java 1.1 (February 1997):
- Inner classes
- JavaBeans,
- changes to the AWT event model.
- Java 2 (December 1998):
- The first major update to Java, which included the introduction of the J2SE (Java 2 Standard Edition)
- J2EE (Java 2 Enterprise Edition) platforms.
- Renamed as “Java 2” to distinguish it from the enterprise-focused Java EE.
- Introduced the Swing GUI toolkit
- the Collections framework
- Java Naming and Directory Interface (JNDI)
- Java Plug-in.
- Java 3 (2000):
- Introduced the HotSpot JVM
- Java Naming and Directory Interface (JNDI)
- Java 4 (2002):
- Introduced the Java Print Service
- Java Web Start feature.
- Java 5 (2004):
- Introduced generics
- annotations
- autoboxing and unboxing
- the enhanced for loop
- Enumerations
- Var Args
- Java 6 (2006):
- improved the performance of the JIT compiler
- Added scripting support with the introduction of the Java Compiler API, Scripting API, and the inclusion of the Rhino JavaScript engine.
- Java 7 (2011):
- Introduced support for type inference with the “diamond operator”
- improved exception handling
- support for the new file system API.
- Java 8 (2014):
- Lambda expressions
- Stream API for functional-style operations on collections
- Date and Time API (java.time package)
- Default and static methods in interfaces
- Nashorn JavaScript engine
- PermGen space replaced with Metaspace
- Java 9 (2017):
- Module system (Project Jigsaw)
- REPL (JShell)
- Reactive Streams API
- Enhanced Process API
- HTTP/2 support
- Various JVM improvements
- Java 10 (2018):
- Local variable type inference with var keyword
- Enhanced garbage collection
- Application class-data sharing
- Experimental Java-based Just-In-Time (JIT) compiler (GraalVM)
- the Local-Variable Type Inference
- the Garbage-Collector Interface,
- the Thread-Local Handshakes.
- Java 11 (2018):
- Introduced the Local-Variable Syntax for Lambda Parameters
- Remove the Java EE and CORBA modules.
- Long-term support (LTS) release
- Removed Java EE modules (moved to Jakarta EE)
- Introduced the Java Platform Module System (JPMS)
- HTTP Client API
- Unicode 10 support
- Java 12 (2019):
- the switch expressions
- the JVM Constants API.
- Added switch expressions (preview feature)
- Compact Number Formatting
- New GC algorithm (Shenandoah
- Java 13 (2019):
- Added text blocks (preview feature)
- Switch expressions (preview feature)
- Dynamic CDS Archives
- Java 14 (2020):
- Added records (preview feature)
- Pattern matching for instanceof (preview feature)
- Switch expressions (standard feature)
- Text blocks (standard feature)
- Java 15 (2021)
- Added sealed classes (preview feature)
- Text blocks (standard feature)
- Hidden classes
- ZGC (Garbage Collector) enhancements
- Java 16 (2021) :
- Added records (standard feature)
- Pattern matching for instanceof (standard feature)
- Unix-domain socket channels
- Foreign function and memory API (incubator feature)
- Java 17 (Java SE 17) (September 2021):
- Added Sealed Classes (standard feature)
- Pattern matching for switch (standard feature)
- Foreign function and memory API (standard feature)
- Enhanced Pseudo-Random Number Generators
- Strong encapsulation of JDK internals