JAVA 10
Submitted to :
Prof. Jyoti Lakhani
MGSU, Bikaner
Arjun Bhati
Semester 4th
Java 10
– JEP (Java Developments kit (JDK) Enhancement Proposal)
– Oracle Corporation
– Java Development Kit and OpenJDk
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.
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,
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
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
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.
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.
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.
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.
Graal is just a Java library. JVMCI provides interfaces that Graal can use to
do lower-level things such as installing machine code,
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]*)*
– 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
Java10 new features 2018

Java10 new features 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 featuresof 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 TypeInference – 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 FullGC 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-DataSharing – 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 theNative-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 UnicodeLanguage-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-BasedJIT 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 justa Java library. JVMCI provides interfaces that Graal can use to do lower-level things such as installing machine code,
  • 12.
    322: Time-Based ReleaseVersioning – 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 March2018 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