JDK Version Differneces

 JDK Versions

Java version language has undergone several changes since JDK 1.0 as well as numerous additions of classes and packages to the standard library. Since J2SE 1.4, the evolution of the java language has been governed by the Java Community Process(JCP), which uses Java Specification Requests (JSRs) to propose and specify additions and changes to the Java platform.

  

 


 JDK vs JRE

JRE(Java RuntimeEnvironment) is needed to run a Java program. A JRE includes, among other things, the Java Virtual Machine(JVM) and the "java" command-line tool.

To develop new Java programs, you need to download a JDK(Java Development Kit). A JDK includes everything the JRE has, as well as the compiler javac and a couple of other tools like javadoc(Java documentation generator) and jdb(Java Debugger).

 

 

JDK versions 

 

JDK 1 Basic Features

 

This was the initial release. This had very unstable APIs and one java web browser named WebRunner.

First stable version was JDK 1.0.2
Few features included:
  • AWT event model
  • Inner classes
  • JavaBeans
  • JDBC
  • RMI
  • Reflection which supported Introspection only, no modification at runtime was possible.
  • JIT(Just In Time) compiler for Windows

 

JDK 1.2 Basic Features

 

This was a major release in terms of number of classes added (almost tripled the size). “J2SE” term was introduced to distinguish the code platform from J2EE and J2ME.

Few features included:

  • strictfp keyword
  • Swing graphical API
  • Sun’s JVM was equipped with a JIT compiler for the first time
  • Java plug-in
  • Collections framework

 

JDK 1.3 Basic Features

 

Few features included:

  • HotSpot JVM
  • Java Naming and Directory Interface (JNDI)
  • Java Platform Debugger Architecture (JPDA)
  • JavaSound
  • Synthetic proxy classes

    

JDK 1.4 Basic Features

 

Few features included:

  • assert keyword
  • Regular expressions
  • Exception chaining
  • Internet Protocol version 6 (IPv6) support
  • New I/O; NIO
  • Logging API
  • Image I/O API
  • Integrated XML parser and XSLT processor (JAXP)
  • Integrated security and cryptography extensions (JCE, JSSE, JAAS)
  • Java Web Start
  • Preferences API (java.util.prefs)

 

 

JDK 5.0 Basic Features

 

Most of the features, which are asked in java interviews, were added in this release.Version was also called 5.0 rather than 1.5.

 
Few features included:

  • Generics
  • Annotations
  • Autoboxing/unboxing
  • Enumerations
  • Varargs
  • Enhanced for each loop
  • Static imports
  • New concurrency utilities in java.util.concurrent
  • Scanner class for parsing data from various input streams and buffers.
 
 

JDK 6 Basic Features

 

The ".0" was dropped from thes version number and version became Java SE 6 


Few features included:

  • Scripting Language Support
  • Performance improvements
  • JAX-WS
  • JDBC 4.0
  • Java Compiler API
  • JAXB 2.0 and StAX parser
  • Pluggable annotations
  • New GC algorithms
 
 

JDK 7 Basic Features

 

 Few features included:

  • JVM support for dynamic languages
  • Compressed 64-bit pointers
  • Strings in switch
  • Automatic resource management in try-statement
  • The diamond operator
  • Simplified varargs method declaration
  • Binary integer literals
  • Underscores in numeric literals
  • Improved exception handling
  • ForkJoin Framework
  • NIO 2.0 having support for multiple file systems, file metadata and symbolic links
  • Watch Service
  • Timsort is used to sort collections and arrays of objects instead of merge sort
  • APIs for the graphics features
  • Support for new network protocols, including SCTP and Sockets Direct Protocol
 
 

JDK 8 Basic Features

 Few features included: 


  • Lambda expression support in APIs
  • Stream API
  • Functional interface and default methods
  • Optionals
  • Nashorn – JavaScript runtime which allows developers to embed JavaScript code within applications
  • Annotation on Java Types
  • Unsigned Integer Arithmetic
  • Repeating annotations
  • New Date and Time API
  • Statically-linked JNI libraries
  • Launch JavaFX applications from jar files
  • Remove the permanent generation from GC
 
 
 

JDK 9 Basic Features

 

The biggest change is the modularization i.e. Java modules.
 
 Few features/changes included:
  • Java platform module system
  • Interface Private Methods
  • HTTP 2 Client
  • J Shell – REPL Tool
  • Platform and JVM Logging
  • Process API Updates
  • Collection API Updates
  • Improvements in Stream API
  • Multi-Release JAR Files
  • @Deprecated Tag Changes
  • Stack Walking
  • Java Docs Updates
  • Miscellaneous Other Features
 
 

JDK 10 Basic Features

 

After Java 9 release, Java 10 came very quickly. Unlike it’s previous release, Java 10 does not have that many exciting features, still it has few important updates which will change the way you code.

 Few features included:

  • JEP 286: Local Variable Type Inference
  • JEP 322: Time-Based Release Versioning
  • JEP 304: Garbage-Collector Interface
  • JEP 307: Parallel Full GC for G1
  • JEP 316: Heap Allocation on Alternative Memory Devices
  • JEP 296: Consolidate the JDK Forest into a Single Repository
  • JEP 310: Application Class-Data Sharing
  • JEP 314: Additional Unicode Language-Tag Extensions
  • JEP 319: Root Certificates
  • JEP 317: Experimental Java-Based JIT Compiler
  • JEP 312: Thread-Local Handshakes
  • JEP 313: Remove the Native-Header Generation Tool
  • New Added APIs and Options
  • Removed APIs and Options
 
 

JDK 11 Basic Features

 

Java 11 (released on September 2018) includes many important and useful updates

  Few features included:

  • HTTP Client API
  • Launch Single-File Programs Without Compilation
  • String API Changes
  • Collection.toArray(IntFunction)
  • Files.readString() and Files.writeString()
  • Optional.isEmpty()
 

 

 

JDK 12 Basic Features


Java 12 (released on March 19, 2019) is latest version available for JDK.

 Few features included:

  • Collectors.teeing() in Stream API
  • String API Changes
  • Files.mismatch(Path, Path)
  • Compact Number Formatting
  • Support for Unicode 11
  • Switch Expressions (Preview)
 

Comments

Popular posts from this blog

cURL (Client Uniform Resource Locator)

Object Oriented Programming