Differences Between Java 9 and Java 10

Differences Between Java 9 and Java 10

Differences Between Java 9 and Java 10

“The community only wants a new version of Java every 3-4 years”

Java 10 was released a few weeks ago(March 2018 ) but we’re still dissecting its most important feature(s) (*cough*Local-Variable Type Inference*cough*), the features that didn’t make the cut and the migration process.

 

Java 8

de name is Spider. Features Added:

– JSR 335, JEP 126: Language-level support for lambda expressions.

– JSR 223, JEP 174: Project Nashorn, a JavaScript runtime which allows developers to embed JavaScript code within applications.

– JSR 308, JEP 104: Annotation on Java Types.

– Unsigned Integer Arithmetic.

– JSR 337, JEP 120: Repeating annotations.

– JSR 310, JEP 150: Date and Time API.

– JEP 178: Statically-linked JNI libraries.

– JEP 153: Launch JavaFX applications (direct launching of JavaFX application JARs).

– JEP 122: Remove the permanent generation.

– Java 8 is not supported on Windows XP. But as of JDK 8 update 5, it still can run under Windows XP after forced installation by directly unzipping from the installation executable.

Java 9

Features Added:

– A lightweight JSON API for consuming and generating JSON documents and data streams.

– A HTTP 2 Client that will bring HTTP 2.0 and websockets, while replacing the legacy HttpURLConnection.

– Process API Updates to improve controlling and managing operating-system process (developers were often forced to use native code with the current API). Along with several other smaller features, as well as dozens of proposals already being tracked by the JEP Index, Oracle has also promised another trio of performance features:

– Improve contended locking, which aims at improving performance when threads compete over access to objects.

– Segmented code cache with better performance, shorter sweep times, less fragmentation and further extensions to come.

– The Smart Java compiler, or sjavac, will be improved to allow default use in the JDK build and general use for building larger projects.

Java 10

286: Local-Variable Type Inference
Enhance the Java Language to extend type inference to declarations of local variables with initializers.

296: Consolidate the JDK Forest into a Single Repository
Combine the numerous repositories of the JDK forest into a single repository in order to simplify and streamline development.

304: Garbage-Collector Interface
Improve the source code isolation of different garbage collectors by introducing a clean garbage collector (GC) interface.

307: Parallel Full GC for G1
Improve G1 worst-case latencies by making the full GC parallel.

310: Application Class-Data Sharing
To improve startup and footprint, extend the existing Class-Data Sharing (“CDS”) feature to allow application classes to be placed in the shared archive.

312: Thread-Local Handshakes
Introduce a way to execute a callback on threads without performing a global VM safepoint. Make it both possible and cheap to stop individual threads and not just all threads or none.

313: Remove the Native-Header Generation Tool (javah)
Remove the javah tool from the JDK.

314: Additional Unicode Language-Tag Extensions
Enhance java.util.Locale and related APIs to implement additional Unicode extensions of BCP 47 language tags.

316: Heap Allocation on Alternative Memory Devices
Enable the HotSpot VM to allocate the Java object heap on an alternative memory device, such as an NV-DIMM, specified by the user.

317: Experimental Java-Based JIT Compiler
Enable the Java-based JIT compiler, Graal, to be used as an experimental JIT compiler on the Linux/x64 platform.

319: Root Certificates
Provide a default set of root Certification Authority (CA) certificates in the JDK.

322: Time-Based Release Versioning
Revise the version-string scheme of the Java SE Platform and the JDK, and related versioning information, for present and future time-based release models.

Comments

  • java9 | Apr 17,2018

    Tim does a wonderful job of explaining the Java basics. Some Advanced Java 8 concepts (diamonds, generics and advanced data structures like HashSet, LinkedHashSet, HashMap, etc in particular) seem to be hurried up. Overall, there is something for everybody in this course. Course content is very comprehensive and well organized. Tim is also very responsive to any queries and requests (and also updating the courses with new content periodically).

  • Leave a Reply

    Your email address will not be published. Required fields are marked *