Java chapter
4.04.2018
Java 10
available
Java 10 compiler bug
JEP 286: Local-Variable Type Inference.
var list = new ArrayList<String>(); // infers
ArrayList<String>
var stream = list.stream(); // infers
Stream<String>
JEP 304:
Garbage-Collect
or Interface.
JEP 310: Application Class-Data Sharing.
java -Xshare:dump -XX:+UseAppCDS
-XX:SharedClassListFile=hello.lst
-XX:SharedArchiveFile=hello.jsa -cp hello.jar
java -Xshare:on -XX:+UseAppCDS
-XX:SharedArchiveFile=hello.jsa -cp hello.jar HelloWorld
JEP 317:
Experimental
Java-Based JIT
Compiler.
Graal & Truffle
Truffle -
Language
Implementation
Framework
Truffle Approach
What is JIT
Mode Execution
Graal
Key Features
● Multi-language compilator.
● Start in just-in-time и ahead-of-time mode.
● Mature optimization
○ Example: Partial Escape Analysis.
● Written in Java to lower the entry barrier
Enable Graal
-XX:+UnlockExperimentalVMOptions
-XX:+UseJVMCICompiler
-XX:-EnableJVMCI
Pitfalls
● Warmup time
● Memory consumption
● Old version on Java 9
Java 11 is
coming
JEP 318: Epsilon.
An Arbitrarily
Low-Overhead
Garbage
Collector
JEP 320: Remove the Java EE and
CORBA Modules
JEP 320 lists several modules and tools that it will remove. The to-be-removed
modules include java.xml.ws, java.xml.ws.annotation, jdk.xml.ws, java.xml.bind,
jdk.xml.bind, java.transaction, java.corba. The to-be-removed tools include wsgen,
wsimport, schemagen, xjc, and servertool.
Thanks!
Sergii Volkodav

Xanadu - Java Chapter Meeting