10 new features of Java 10
286: Local-Variable Type Inference296: Consolidate the JDK Forest into a Single Repository304: Garbage-Collector Interface307: Parallel Full GC for G1310: Application Class-Data Sharing312: Thread-Local Handshakes313: Remove the Native-Header Generation Tool (javah)314: Additional Unicode Language-Tag Extensions316: Heap Allocation on Alternative Memory Devices317: Experimental Java-Based JIT Compiler319: Root Certificates322: Time-Based Release Versioning
that all are new features of java 10 that's lunch march 2018
1. JAVA 10
Submitted to :
Prof. Jyoti Lakhani
MGSU, Bikaner
Arjun Bhati
Semester 4th
2. Java 10
– JEP (Java Developments kit (JDK) Enhancement Proposal)
– Oracle Corporation
– Java Development Kit and OpenJDk
3. 10 new features of Java 10 !
286: Local-Variable Type Inference
296: Consolidate the JDK Forest into a Single Repository
304: Garbage-Collector Interface
307: Parallel Full GC for G1
310: Application Class-Data Sharing
312: Thread-Local Handshakes
313: Remove the Native-Header Generation Tool (javah)
314: Additional Unicode Language-Tag Extensions
316: Heap Allocation on Alternative Memory Devices
317: Experimental Java-Based JIT Compiler
319: Root Certificates
322: Time-Based Release Versioning
JEP no.
4. 286: Local-Variable Type Inference
– This is most interesting futures
– improve the developer experience by reducing the ceremony associated with
writing Java code,
– Many of the most popular strongly-type programming languages like C++, C#.
– C++ provides the auto and C# provides var keyword.
– Since the var keyword is context-sensitive,
5. 304: Garbage-Collector Interface
– The GC interface would be defined by the existing class CollectedHeap which
every garbage collector needs to implement.
– The code for implementation details that are shared between multiple garbage
collectors should exist in a helper class.
– HOTSHOP – Mobile Hotshop.There a few utility classes needed prior to a CollectedHeap being
instantiated
6. 307: Parallel Full GC for G1
– The G1 garbage collector is designed to avoid full collections
– The current implementation of the full GC for G1 uses a single threaded mark-
sweep-compact algorithm
– Use the same number of threads as the Young and Mixed collections do.
G 1 garbage collector Garbage collector
7. 310: Application Class-Data Sharing
– Class-Data Sharing, introduced in JDK 5, allows a set of classes to be pre-
processed into a shared archive file that can then be memory-mapped at
runtime to reduce startup time
– Analysis of serverless cloud services shows that many of them load several
thousand application classes at start-up.
– Summary
To improve startup and footprint, extend the existing Class-Data Sharing
("CDS") feature to allow application classes to be placed in the shared archive.
8. 313: Remove the Native-Header Generation Tool
(javah)
– This functionality provides the ability to write native header files at the time
that Java source code is compiled
– Focusing on the support provided by javac eliminates the need to upgrade javah
to support recent new paradigms, such as API access via the Compiler API in
javax.tools.*
– Remove the javah tool from the JDK.
– Any testing will be limited to verifying the javah command is not present.
– java.util.spi.ToolProvider SPI added in JDK 9.
9. 314: Additional Unicode Language-Tag Extensions
– This JEP will add support for the following additional extensions:
– cu (currency type) fw (first day of week) rg (region override) tz (time zone)
– Enhance java.util.Locale and related APIs to implement additional Unicode
extensions of BCP 47 language tags.
10. 317: Experimental Java-Based JIT Compiler
– Enable Graal to be used as an experimental JIT compiler, starting with
the Linux/x64 platform. Graal will use the JVM compiler interface
(JVMCI) introduced in JDK 9. Graal is already in the JDK, so enabling it
as an experimental JIT will primarily be a testing and debugging effort.
– To enable Graal as the JIT compiler, use the following options on the
java command line:
– Graal is an Oracle project aiming to implement a high performance
Java dynamic compiler and interpreter. The objective of Graal is to
improve the performance of Java virtual machine-based languages to
match the performance of native languages.
11. Graal is just a Java library. JVMCI provides interfaces that Graal can use to
do lower-level things such as installing machine code,
12. 322: Time-Based Release Versioning
– An element is either zero, or an unsigned integer numeral without leading
zeros.
– final element of a version number must not be zero. When an element is
incremented, all subsequent elements are removed.
– first four elements are assigned specific meanings, as follows:
– 1. $FEATURE 2. $INTERIM 3. $UPDATE 4. $PATCH
[1-9][0-9]*((.0)*.[1-9][0-9]*)*
13. – The March 2018 release is #JDK10,
– The September 2018 release is #JDK11
– http://openjdk.java.net
– https://aboullaite.me
– https://twitter.com/java/status
– http://www.oracle.com