Changes of JDK versions (7 to 14)

 



JDK Version 7

  • JVM support for dynamic languages

  • Compressed 64-bit pointers

  • Small language changes

  • Concurrency utilities under JSR

  • New File I/O library adding support for multiple file systems, file metadata and symbolic links.

  • Timsort is used to sort collections and arrays of objects instead of merge sort

  • Library-level support for elliptic curve cryptography algorithms

  • An XRender pipeline for Java 2 D, which improves handling of features specific to modern GPUs

  • New platform APIs for the graphics features originally implemented in version 6u10 as unsupported APIs

  • Enhanced library-level support for new network protocols, including SCTP and Sockets Direct Protocol

  • Upstream updates to XML and Unicode

  • Java deployment rule sets



JDK Version 8 -Long Term Support version (LTS)

  • Language-level support for lambda expressions

  • Project Nashorn, a JavaScript runtime which allows developers to embed JavaScript code within applications

  • Annotation on Java types

  • Unsigned integer arithmetic

  • Repeating annotations

  • Date and time API

  • Statically-linked JNI libraries

  • Launch JavaFX applications

  • Remove Permanent Generation


JDK Version 9

  • Modularization of the JDK under Project Jigsaw

  • JShell: The Java Shell (a Java REPL)

  • Ahead of time compilation

  • XML catalogs

  • More concurrency updates(Includes a Java implementation of Reactive Streams.

  • Variable handles, define a standard means to invoke the equivalents of various java.util.concurrent.atomic and sun.misc.Unsafe operations

  • Jlink: The java Linker: create a tool that can assemble and optimize a set of modules and their dependencies into a custom run-time image. It effectively allows to produce a fully usable executable including the JVM to run it

  • Java DB was removed from JDK

  • HiDPI graphics: automatic scaling and sizing

  • Compact Strings

  • Milling Project Coin


JDK Version 10

  • Local-variable type inference

  • Experimental java-based JIT compiler. This is the integration of the Graal dynamic compiler for the Linux x64 platform

  • Application class -data sharing. This allows application classes to be placed in the shared archive to reduce startup and footprint for Java applications.

  • Time based released versioning

  • Parallel full GC for G1

  • Garbage-collector interface

  • Additional Unicode language-tag extensions

  • Root certificates

  • Thread-local handshakes

  • Heap allocation on alternative memory devices

  • Remove the native-header generation tool - javah

  • Consolidate the JDK forest into a single repository



JDK Version 11 - Long Term Support version (LTS)

  • Dynamic class-file constants

  • Epsilon: a no-op garbage collector

  • Local-variable syntax for lambda parameters

  • Low-overhead heap profiling

  • HTTP client (standard)

  • Transport Layer Security (TLS)

  • Flight recorder

  • ZGC: a scalable low-latency garbage collector (experimental)

  • Java FX, Java EE and CORBA modules have been removed from JDK

  • Deprecated the Nashorn JavaScript engine



JDK Version 12

  • Support for unicode new characters and symbols

  • POSIX_SPAWN Option on Linux

  • JEP 334 JVM Constants API

  • Support for Compact Number Formatting

  • Square Character Support for japanese New Era

  • ZGC Concurrent Class Unloading

  • Allocation of Old Generation of Java Heap on Alternate Memory Devices

  • HotSpot Windows OS Detection Correctly Identifies Windows Server 2019

  • Command-Line Flag -XX+Extensive Error Reports

  • New Java Flight Recorder (JFR) Security Events

  • Customizing PKCS12 keystore Generation

  • ChaCha20 and Poly1305 TLS Cipher Suites

  • Support for dns_canonicalize_hostname in krb5.conf

  • JEP 325 Switch Expressions (Preview)




JDK Version 13

  • Added FileSystems.newFileSystem(Path, Map<String, ?>) Method

  • New java.nio.ByteBuffer Bulk get/put Methods Transfer Bytes Without Regard to Buffer Position

  • New Japanese Era Name Reiwa

  • Support for Unicode 12.1

  • JEP 351 ZGC Uncommit Unused Memory

  • Added -XXSoftMaxHeapSize Flag

  • ZGC Maximum Heap Size Increased to 16TB

  • JEP 350 Dynamic CDS Archiving

  • Configurable Read Timeout for CRLs

  • New keytool -showinfo -tls Command for Displaying TLS Configuration Information

  • Support for MS Cryptography Next Generation (CNG)

  • SunPKCS11 Provider Upgraded with Support for PKCS#11 v2.40

  • Support for X25519 and X448 in TLS

  • Dynamic CDS Archives

  • ZGC: Uncommit Unused Memory

  • Reimplement the Legacy Socket API

  • Switch Expressions

  • Text Blocks



JDK Version 14


  • Accounting Currency Format Support

  • JEP 359 Records (Preview)

  • Clarify the Specification of ReadableByteChannel.read() and Related Methods

  • JEP 365 ZGC on Windows

  • JEP 364 ZGC on macOS

  • Parallel GC Improvements

  • JEP 345 NUMA-Aware Memory Allocation for G1

  • JEP 349 JFR Event Streaming

  • Weak Named Curves in TLS, CertPath, and Signed JAR Disabled by Default

  • Apache Santuario Library Updated to Version 2.1.4

  • Allow Discoverable javac Plugins to be Invoked by Default

  • New Method to SAX ContentHandler for Handling XML Declaration







Enjoy Java!

Comments

Popular posts from this blog

cURL (Client Uniform Resource Locator)

JDK Version Differneces

Object Oriented Programming