SlideShare a Scribd company logo
Summary of JDK10
and
What will come into JDK11
2018/5/28 Naoki Kishida
About me
•  Naoki Kishida
•  LINE Fukuoka
•  @kis
Agenda
•  New Release Model
•  About JDK 10
•  About JDK 11
•  About Java Support
New Release Model
6-monthly release
•  Oracle had announced they will
release Java every 6 months at
2017/9/6
Java new release cycle.
•  Feature release every 6 months
–  March and September(春分の⽇/秋分の⽇)
•  Maintenance release every 3 months
–  April and July for March release
–  October and January for September release
•  Long Term Support every 3 years
–  The first LTS is for JDK 11
•  Oracle JDK will be for only Oracle
customer
–  Use OpenJDK instead.
Version number
•  2018/03 Feature release JDK10
•  2018/04 Maintenance release JDK10.0.1
•  2018/07 Maintenance release JDK10.0.2
•  2018/09 Feature release JDK11 LTS
•  2018/10 Maintenance release JDK11.0.1
LTS
•  2019/01 Maintenance release JDK11.0.2
LTS
Java SE 8 support is extended
•  Oracle has extended Java SE 8
support at least until 2019/1
•  It is available for the personal use
until 2020/12
•  Java SE 8 support will finish after 3
months of JDK 11 release.
•  We should move to JDK 11 by 2019/1
http://www.oracle.com/technetwork/jp/java/eol-135779-ja.html
Desktop technology
•  Applet and Web Start is no longer
supported after JDK 11
•  JavaFX will not be bundled with JDK11
– So far OpenJDK had not bundled JavaFX
•  AWT and Swing will be supported
– There are many commits for JDK 11
About JDK 10
Java 10 JEPs
•  286 Local-Variable Type Inference
•  296 Consolidate the Repository
•  304 GC 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 Momory Devices
•  317 Experimental Java-Based JIT Compiler
•  319 Root Certificates
•  322 Time-Based Release Versioning
286: Local-Variable Type
Inferences
•  var list = new ArrayList<String>()
•  `var` is not a keyword
– but a special type
•  We can use `var` as a variable name
•  We can use `var` as a method name
•  We can not use `var` as a class name
Where can we use `var`?
•  OK
– Right Oprand has the type
•  var strs = new ArrayList<String>();
•  var path = Path.of(“http://example.com”);
•  Should not
– Enclosing type
•  ex: Supplier<String>, Optional<String>
ListenableFuture<String>
•  var name = findName(id);
print(name.get()); // How should we care?
Another usage for `var`
•  Anonymous class become useful
– ex: defining a local method
•  var	m	=	new	Object()	{

		int	twice(int	x)	{

				return	x	*	2;

		}

};

print(m.twice(3));
304: Garbage-Collector
Interface
•  GC is modularized.
•  There are many GCs that will come.
– Epsilon GC
– ZGC
– Shenandoah
•  Not to control GC by user code
317: Experimental Java-Based
JIT Compiler
•  Project Metoropolis
– java-on-java
•  We can write JVM even with Scala?
– There is a possibility.
307: Parallel Full GC for G1
•  G1GC had been the default GC on JDK
9
•  Full GC for G1 was not parallel.
•  Until JDK 8, Parallel GC was the
default
•  To smooth migration, Full GC for
G1GC also parallelize.
•  But full GC should not occur.
– Ideally, it has no effect for us.
310: Application Class-Data
Sharing
•  CDS for system class is introduced in
JDK 5
•  Share class data between multiple
JVM
on the same machine
– startup performance
– reduce the resource footprint
•  JDK 10 allow to use CDS for
application class
312: Thread-Local Handshakes
•  JVM can stop an individual thread
– stop not just all thread
313:	Remove the Native-Header
Generation Tool(javah)	
•  javah	is	removed	
•  use	`javac	–h`	instead
314: Additional Unicode
Language-Tag Extensions
•  Enhance java.util.Locale
•  additional Unicode extensions
of BCP 47 language tag
– currency type
– the first day of the week
– region override
– time zone
316: Heap Allocation on
Alternative Memory Devices
•  Now we can use non-volatile RAM(不
揮発性メモリ) such as 3D XPoint
•  This will enable the JVM to use
different types of memory system
319: Root Certificates
•  OpenJDK doesnʼt have Root
Certificates so far
•  Oracle JDK have had it.
•  To smooth migration, OpenJDK have
had it.
API Changes
•  java.io.Reader
– long transferTo(Writer)
•  java.lang.mainagement.RuntimeMXBe
an
– long getPid()
•  java.util.List/Map/Set
– copyOf(Collection)
•  java.util.stream.Collectors
– toUnmodifiableList/Set/Map
Docker aware
•  Until JDK 9, JVM use the platform CPU
count/Memory size even if it is running
on Docker.
•  JDK 10, JVM can use Docker setting for
CPU count/ Memory size if it is running
on Docker.
•  VM Options
–  -XX:InitialRAMPercentage
–  -XX:MaxRAMPercentage
–  -XX:MinRAMPercentage
Other Changes
•  Kerberos configuration file krb5.conf
include *.conf in INCLUDEDIR
•  -d32 and –d64 has been removed
•  new JavaDoc tag. {@summary}
•  policytool has been removed
•  XMLInputFactory.newFactory() has
been “de-deprecated”
– it had been deprecated by mistake.
About JDK 11
Java 11 JEPs
•  309 Dynamic Class-File Constants
•  318 Epsilon: A No-Op Garbage Collector
•  320 Remove the Java EE and CORBA Modules
•  321 HTTP Client(Standard)
•  323 Local-Variable Syntax for Lambda Parameters
•  324 Key Agreement with Curve25519 and Curve448
•  327 Unicode 10
•  328 Flight Recorder
•  329 ChaCha20 and Poly1305 Cryptographic Algorithms
•  330 Launch Single-File Source-Code Programs
Expected JEPs for JDK11
•  326 Raw String Literals
•  325 Switch Expressions
•  181 Nest-Based Access Control
Launch Single-File Source-Code
Programs
•  java Hello.java
– The file name does not need to be related
with the class name
•  Shebang
– #! /usr/bin/java –source 10
– chmod +x hello
– ./hello
Raw String Literals
•  var	sql	=	```select	NAME

													from	MEMBER

													where	id=1```	
•  var	regexp	=	```hello¥¥n```

											//	same	as	“hello¥¥¥¥n”	
•  How to address indent
Switch Expressions
•  Now `switch` is a statement
•  int	i;

switch	(s)	{

		case	“start”:

		case	“begin”:

				i	=	0;

				break;

		case	“end”:

				i	=	1;

				break;

		default:

				i	=	2;
Switch Expressions
•  int	i	=	switch	(s)	{

		case	“start”,“begin”->	0;

		case	“end”	->	1;

		default	->	2;

}
Local-Variable Syntax for
Lambda Parameters
•  list.map(s	->	s.toUpperCase())

				.collect(toList())	
•  list.map((var	s)	->	s.toUpperCase())

				.collect(toList())	
•  list.map((@Nullable	var	s)

													->	s.toUpperCase())

				.collect(toList())
HTTP Client(Standard)
•  Graduate the incubator
•  var	client	HttpClient.newHttpClient();

var	url	=	URI.create(url);

var	req	=	HttpRequest.newBuilder(uri).build();

HttpResponse<String>	res	=	client.send(

		req,	HttpResponse.BodyHandlers.ofString(

				Charset.forName(“utf-8”));

return	res.body();
Epsilon: A No-Op Garbage
Collector
•  Do nothing!
•  For evaluate the performance of
another feature
– GC will make a noise
Remove the Java EE and
CORBA Modules
•  No one uses CORBA!
•  The size is large
•  Removing them, JDK will be smaller
Flight Recorder
•  Logging the performance
•  Now it is an open source
•  Caution
– for before JDK10 is still commercial
Unicode 10
•  Support Unicode 9 and Unicode 10
Dynamic Class-File Constants
•  Use	invokeDynamic	for	constant	initialization
Key Agreement with
Curve25519 and Curve440
•  RFC	7748	
•  More	efficient	and	secure	than	ECDH
ChaCha20 and Poly1305
Cryptographic Algorithms
•  RFC	7539	
•  Stream	cypher	
•  Not	support	for	TLS	
•  The	first	step	of	supporting	in	TLS
Nestmate
•  To address inner class accessibility
•  from Valhalla!
API changes in JDK11
•  String::repeat/lines/strip...
•  Predicate::not
•  Optional::isEmpty
•  Files
•  ArrayIndexOutOfBoundsException
– the message is changed
String
•  repeat
•  isBlank
•  lines
•  strip/stripLeading/stripTrailing
Predicate::not
•  lines.filter(s -> !s.isEmpty())
→
lines.filter(
Predicate.not(String::isEmpty))
Optional::isEmpty	
•  Optional	has	`isEmpty()`
Files
•  String Files.read(Path)
•  Path FIles.write(Path, String)
•  Files.isSameContent(Path, Path)
ArrayIndexOutOfBoundsException
•  jshell> new int[]{}[0]
| java.lang.ArrayIndexOutOfBoundsException thrown: 0
| at (#1:1)
->
jshell> new int[]{}[0]
| Exception java.lang.ArrayIndexOutOfBoundsException:
Index 0 out of bounds for length 0
| at (#8:1)
How about Stream#toList?
•  modifiable? unmodifiable?
•  What order?
•  “it nulls a property of the Stream API
we have take time to keep.
The whole Stream API doesn't
depends on the Collection API”
About Java Support
Oracle JDK
•  Same as the current support
•  Very expensive for web servicer
•  100 servers on AWS -> 1おくえん
OpenJDK
•  Official publishment says it has only 6
months support for each JDK release.
No LTS
•  Mark Reinhold said OpenJDK will have
LTS
– but not on the web site yet
– LTS support is for 3 years. No overlap.
AdoptOpenJDK
•  Project by London JUG
•  IBM supponsered
•  Provide pre-build JDK
•  LTS support for 4 years
Zulu
•  Provided by Azul System
•  Free to download and use
•  Enterprise support
– 100 servers $28,750/year
– unlimited servers $258,750/year
Support the new era
after Heisei
•  Start to support the new era as
NewEra
•  JDK12 will release 2019/3
•  The new era will release early 2019/4
•  JDK maintenance release will be late
2019/4
– JDK 12.0.1
•  The new era will start 2019/5
Summary
•  がんばろ
Ad

More Related Content

What's hot (19)

OSMC 2016 - Monitor your infrastructure with Elastic Beats by Monica Sarbu
OSMC 2016 - Monitor your infrastructure with Elastic Beats by Monica SarbuOSMC 2016 - Monitor your infrastructure with Elastic Beats by Monica Sarbu
OSMC 2016 - Monitor your infrastructure with Elastic Beats by Monica Sarbu
NETWAYS
 
Tuning Solr and its Pipeline for Logs: Presented by Rafał Kuć & Radu Gheorghe...
Tuning Solr and its Pipeline for Logs: Presented by Rafał Kuć & Radu Gheorghe...Tuning Solr and its Pipeline for Logs: Presented by Rafał Kuć & Radu Gheorghe...
Tuning Solr and its Pipeline for Logs: Presented by Rafał Kuć & Radu Gheorghe...
Lucidworks
 
JCR In Action (ApacheCon US 2009)
JCR In Action (ApacheCon US 2009)JCR In Action (ApacheCon US 2009)
JCR In Action (ApacheCon US 2009)
Carsten Ziegeler
 
Level DB - Quick Cheat Sheet
Level DB - Quick Cheat SheetLevel DB - Quick Cheat Sheet
Level DB - Quick Cheat Sheet
Aniruddha Chakrabarti
 
Call me maybe: Jepsen and flaky networks
Call me maybe: Jepsen and flaky networksCall me maybe: Jepsen and flaky networks
Call me maybe: Jepsen and flaky networks
Shalin Shekhar Mangar
 
GemStone/64 product update and road map
GemStone/64 product update and road mapGemStone/64 product update and road map
GemStone/64 product update and road map
ESUG
 
Extending WildFly
Extending WildFlyExtending WildFly
Extending WildFly
JBUG London
 
NYC Lucene/Solr Meetup: Spark / Solr
NYC Lucene/Solr Meetup: Spark / SolrNYC Lucene/Solr Meetup: Spark / Solr
NYC Lucene/Solr Meetup: Spark / Solr
thelabdude
 
NYJavaSIG - Big Data Microservices w/ Speedment
NYJavaSIG - Big Data Microservices w/ SpeedmentNYJavaSIG - Big Data Microservices w/ Speedment
NYJavaSIG - Big Data Microservices w/ Speedment
Speedment, Inc.
 
How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...
How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...
How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...
Malin Weiss
 
JVM Under the Hood
JVM Under the HoodJVM Under the Hood
JVM Under the Hood
Serkan Özal
 
JCR and ModeShape
JCR and ModeShapeJCR and ModeShape
JCR and ModeShape
Jozef Chocholacek
 
11. From Hadoop to Spark 2/2
11. From Hadoop to Spark 2/211. From Hadoop to Spark 2/2
11. From Hadoop to Spark 2/2
Fabio Fumarola
 
Docker.io
Docker.ioDocker.io
Docker.io
Ladislav Prskavec
 
Concurrency and Multithreading Demistified - Reversim Summit 2014
Concurrency and Multithreading Demistified - Reversim Summit 2014Concurrency and Multithreading Demistified - Reversim Summit 2014
Concurrency and Multithreading Demistified - Reversim Summit 2014
Haim Yadid
 
Scala io2013 : Our journey from UML/MDD to Scala macros
Scala io2013 : Our journey from UML/MDD to Scala macrosScala io2013 : Our journey from UML/MDD to Scala macros
Scala io2013 : Our journey from UML/MDD to Scala macros
ebiznext
 
Bringing Concurrency to Ruby - RubyConf India 2014
Bringing Concurrency to Ruby - RubyConf India 2014Bringing Concurrency to Ruby - RubyConf India 2014
Bringing Concurrency to Ruby - RubyConf India 2014
Charles Nutter
 
Experiences with Evangelizing Java Within the Database
Experiences with Evangelizing Java Within the DatabaseExperiences with Evangelizing Java Within the Database
Experiences with Evangelizing Java Within the Database
Marcelo Ochoa
 
Debugging Your Production JVM
Debugging Your Production JVMDebugging Your Production JVM
Debugging Your Production JVM
kensipe
 
OSMC 2016 - Monitor your infrastructure with Elastic Beats by Monica Sarbu
OSMC 2016 - Monitor your infrastructure with Elastic Beats by Monica SarbuOSMC 2016 - Monitor your infrastructure with Elastic Beats by Monica Sarbu
OSMC 2016 - Monitor your infrastructure with Elastic Beats by Monica Sarbu
NETWAYS
 
Tuning Solr and its Pipeline for Logs: Presented by Rafał Kuć & Radu Gheorghe...
Tuning Solr and its Pipeline for Logs: Presented by Rafał Kuć & Radu Gheorghe...Tuning Solr and its Pipeline for Logs: Presented by Rafał Kuć & Radu Gheorghe...
Tuning Solr and its Pipeline for Logs: Presented by Rafał Kuć & Radu Gheorghe...
Lucidworks
 
JCR In Action (ApacheCon US 2009)
JCR In Action (ApacheCon US 2009)JCR In Action (ApacheCon US 2009)
JCR In Action (ApacheCon US 2009)
Carsten Ziegeler
 
Call me maybe: Jepsen and flaky networks
Call me maybe: Jepsen and flaky networksCall me maybe: Jepsen and flaky networks
Call me maybe: Jepsen and flaky networks
Shalin Shekhar Mangar
 
GemStone/64 product update and road map
GemStone/64 product update and road mapGemStone/64 product update and road map
GemStone/64 product update and road map
ESUG
 
Extending WildFly
Extending WildFlyExtending WildFly
Extending WildFly
JBUG London
 
NYC Lucene/Solr Meetup: Spark / Solr
NYC Lucene/Solr Meetup: Spark / SolrNYC Lucene/Solr Meetup: Spark / Solr
NYC Lucene/Solr Meetup: Spark / Solr
thelabdude
 
NYJavaSIG - Big Data Microservices w/ Speedment
NYJavaSIG - Big Data Microservices w/ SpeedmentNYJavaSIG - Big Data Microservices w/ Speedment
NYJavaSIG - Big Data Microservices w/ Speedment
Speedment, Inc.
 
How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...
How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...
How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...
Malin Weiss
 
JVM Under the Hood
JVM Under the HoodJVM Under the Hood
JVM Under the Hood
Serkan Özal
 
11. From Hadoop to Spark 2/2
11. From Hadoop to Spark 2/211. From Hadoop to Spark 2/2
11. From Hadoop to Spark 2/2
Fabio Fumarola
 
Concurrency and Multithreading Demistified - Reversim Summit 2014
Concurrency and Multithreading Demistified - Reversim Summit 2014Concurrency and Multithreading Demistified - Reversim Summit 2014
Concurrency and Multithreading Demistified - Reversim Summit 2014
Haim Yadid
 
Scala io2013 : Our journey from UML/MDD to Scala macros
Scala io2013 : Our journey from UML/MDD to Scala macrosScala io2013 : Our journey from UML/MDD to Scala macros
Scala io2013 : Our journey from UML/MDD to Scala macros
ebiznext
 
Bringing Concurrency to Ruby - RubyConf India 2014
Bringing Concurrency to Ruby - RubyConf India 2014Bringing Concurrency to Ruby - RubyConf India 2014
Bringing Concurrency to Ruby - RubyConf India 2014
Charles Nutter
 
Experiences with Evangelizing Java Within the Database
Experiences with Evangelizing Java Within the DatabaseExperiences with Evangelizing Java Within the Database
Experiences with Evangelizing Java Within the Database
Marcelo Ochoa
 
Debugging Your Production JVM
Debugging Your Production JVMDebugging Your Production JVM
Debugging Your Production JVM
kensipe
 

Similar to Summary of JDK10 and What will come into JDK11 (20)

Summary of JDK10 and What will come into JDK11
Summary of JDK10 and What will come into JDK11Summary of JDK10 and What will come into JDK11
Summary of JDK10 and What will come into JDK11
なおき きしだ
 
New thing in JDK10 even that scala-er should know
New thing in JDK10 even that scala-er should knowNew thing in JDK10 even that scala-er should know
New thing in JDK10 even that scala-er should know
なおき きしだ
 
A tour of Java and the JVM
A tour of Java and the JVMA tour of Java and the JVM
A tour of Java and the JVM
Alex Birch
 
What’s expected in Java 9
What’s expected in Java 9What’s expected in Java 9
What’s expected in Java 9
Gal Marder
 
Whats new in Java 9,10,11,12
Whats new in Java 9,10,11,12Whats new in Java 9,10,11,12
Whats new in Java 9,10,11,12
Rory Preddy
 
Real time Analytics with Apache Kafka and Apache Spark
Real time Analytics with Apache Kafka and Apache SparkReal time Analytics with Apache Kafka and Apache Spark
Real time Analytics with Apache Kafka and Apache Spark
Rahul Jain
 
Java platform
Java platformJava platform
Java platform
Universidade de São Paulo
 
Scala at Treasure Data
Scala at Treasure DataScala at Treasure Data
Scala at Treasure Data
Taro L. Saito
 
Java >= 9
Java >= 9Java >= 9
Java >= 9
Benjamin Pack
 
Java9to19Final.pptx
Java9to19Final.pptxJava9to19Final.pptx
Java9to19Final.pptx
iFour Technolab Pvt. Ltd.
 
Pune-Cocoa: Blocks and GCD
Pune-Cocoa: Blocks and GCDPune-Cocoa: Blocks and GCD
Pune-Cocoa: Blocks and GCD
Prashant Rane
 
Fastest Servlets in the West
Fastest Servlets in the WestFastest Servlets in the West
Fastest Servlets in the West
Stuart (Pid) Williams
 
1java Introduction
1java Introduction1java Introduction
1java Introduction
Adil Jafri
 
Scaling Massive Elasticsearch Clusters
Scaling Massive Elasticsearch ClustersScaling Massive Elasticsearch Clusters
Scaling Massive Elasticsearch Clusters
Sematext Group, Inc.
 
gcdtmp
gcdtmpgcdtmp
gcdtmp
TheFoolish Man
 
Apache Geode Meetup, London
Apache Geode Meetup, LondonApache Geode Meetup, London
Apache Geode Meetup, London
Apache Geode
 
What's new in Solr 5.0
What's new in Solr 5.0What's new in Solr 5.0
What's new in Solr 5.0
Anshum Gupta
 
GETTING STARTED WITH JAVA(beginner)
GETTING STARTED WITH JAVA(beginner)GETTING STARTED WITH JAVA(beginner)
GETTING STARTED WITH JAVA(beginner)
HarshithaAllu
 
Real time data pipline with kafka streams
Real time data pipline with kafka streamsReal time data pipline with kafka streams
Real time data pipline with kafka streams
Yoni Farin
 
Performance Tuning RocksDB for Kafka Streams' State Stores (Dhruba Borthakur,...
Performance Tuning RocksDB for Kafka Streams' State Stores (Dhruba Borthakur,...Performance Tuning RocksDB for Kafka Streams' State Stores (Dhruba Borthakur,...
Performance Tuning RocksDB for Kafka Streams' State Stores (Dhruba Borthakur,...
confluent
 
Summary of JDK10 and What will come into JDK11
Summary of JDK10 and What will come into JDK11Summary of JDK10 and What will come into JDK11
Summary of JDK10 and What will come into JDK11
なおき きしだ
 
New thing in JDK10 even that scala-er should know
New thing in JDK10 even that scala-er should knowNew thing in JDK10 even that scala-er should know
New thing in JDK10 even that scala-er should know
なおき きしだ
 
A tour of Java and the JVM
A tour of Java and the JVMA tour of Java and the JVM
A tour of Java and the JVM
Alex Birch
 
What’s expected in Java 9
What’s expected in Java 9What’s expected in Java 9
What’s expected in Java 9
Gal Marder
 
Whats new in Java 9,10,11,12
Whats new in Java 9,10,11,12Whats new in Java 9,10,11,12
Whats new in Java 9,10,11,12
Rory Preddy
 
Real time Analytics with Apache Kafka and Apache Spark
Real time Analytics with Apache Kafka and Apache SparkReal time Analytics with Apache Kafka and Apache Spark
Real time Analytics with Apache Kafka and Apache Spark
Rahul Jain
 
Scala at Treasure Data
Scala at Treasure DataScala at Treasure Data
Scala at Treasure Data
Taro L. Saito
 
Pune-Cocoa: Blocks and GCD
Pune-Cocoa: Blocks and GCDPune-Cocoa: Blocks and GCD
Pune-Cocoa: Blocks and GCD
Prashant Rane
 
1java Introduction
1java Introduction1java Introduction
1java Introduction
Adil Jafri
 
Scaling Massive Elasticsearch Clusters
Scaling Massive Elasticsearch ClustersScaling Massive Elasticsearch Clusters
Scaling Massive Elasticsearch Clusters
Sematext Group, Inc.
 
Apache Geode Meetup, London
Apache Geode Meetup, LondonApache Geode Meetup, London
Apache Geode Meetup, London
Apache Geode
 
What's new in Solr 5.0
What's new in Solr 5.0What's new in Solr 5.0
What's new in Solr 5.0
Anshum Gupta
 
GETTING STARTED WITH JAVA(beginner)
GETTING STARTED WITH JAVA(beginner)GETTING STARTED WITH JAVA(beginner)
GETTING STARTED WITH JAVA(beginner)
HarshithaAllu
 
Real time data pipline with kafka streams
Real time data pipline with kafka streamsReal time data pipline with kafka streams
Real time data pipline with kafka streams
Yoni Farin
 
Performance Tuning RocksDB for Kafka Streams' State Stores (Dhruba Borthakur,...
Performance Tuning RocksDB for Kafka Streams' State Stores (Dhruba Borthakur,...Performance Tuning RocksDB for Kafka Streams' State Stores (Dhruba Borthakur,...
Performance Tuning RocksDB for Kafka Streams' State Stores (Dhruba Borthakur,...
confluent
 
Ad

More from なおき きしだ (20)

GraalVMの紹介とTruffleでPHPぽい言語を実装したら爆速だった話
GraalVMの紹介とTruffleでPHPぽい言語を実装したら爆速だった話GraalVMの紹介とTruffleでPHPぽい言語を実装したら爆速だった話
GraalVMの紹介とTruffleでPHPぽい言語を実装したら爆速だった話
なおき きしだ
 
GraalVM at Fukuoka LT
GraalVM at Fukuoka LTGraalVM at Fukuoka LT
GraalVM at Fukuoka LT
なおき きしだ
 
これからのコンピューティングの変化とこれからのプログラミング in 福岡 2018/12/8
これからのコンピューティングの変化とこれからのプログラミング in 福岡 2018/12/8これからのコンピューティングの変化とこれからのプログラミング in 福岡 2018/12/8
これからのコンピューティングの変化とこれからのプログラミング in 福岡 2018/12/8
なおき きしだ
 
GraalVMについて
GraalVMについてGraalVMについて
GraalVMについて
なおき きしだ
 
VRカメラが楽しいのでブラウザで見たくなった話
VRカメラが楽しいのでブラウザで見たくなった話VRカメラが楽しいのでブラウザで見たくなった話
VRカメラが楽しいのでブラウザで見たくなった話
なおき きしだ
 
最近のJava事情
最近のJava事情最近のJava事情
最近のJava事情
なおき きしだ
 
怖いコードの話 2018/7/18
怖いコードの話 2018/7/18怖いコードの話 2018/7/18
怖いコードの話 2018/7/18
なおき きしだ
 
Java新機能観察日記 - JJUGナイトセミナー
Java新機能観察日記 - JJUGナイトセミナーJava新機能観察日記 - JJUGナイトセミナー
Java新機能観察日記 - JJUGナイトセミナー
なおき きしだ
 
プログラマになるためになにを勉強するか at 九州学生エンジニアLT大会
プログラマになるためになにを勉強するか at 九州学生エンジニアLT大会プログラマになるためになにを勉強するか at 九州学生エンジニアLT大会
プログラマになるためになにを勉強するか at 九州学生エンジニアLT大会
なおき きしだ
 
これからのコンピューティングの変化とこれからのプログラミング at 広島
これからのコンピューティングの変化とこれからのプログラミング at 広島これからのコンピューティングの変化とこれからのプログラミング at 広島
これからのコンピューティングの変化とこれからのプログラミング at 広島
なおき きしだ
 
Java Release Model (on Scala Matsuri)
Java Release Model (on Scala Matsuri)Java Release Model (on Scala Matsuri)
Java Release Model (on Scala Matsuri)
なおき きしだ
 
これからのJava言語と実行環境
これからのJava言語と実行環境これからのJava言語と実行環境
これからのJava言語と実行環境
なおき きしだ
 
JavaOne報告2017
JavaOne報告2017JavaOne報告2017
JavaOne報告2017
なおき きしだ
 
JavaOne2017で感じた、Javaのいまと未来 in 大阪
JavaOne2017で感じた、Javaのいまと未来 in 大阪JavaOne2017で感じた、Javaのいまと未来 in 大阪
JavaOne2017で感じた、Javaのいまと未来 in 大阪
なおき きしだ
 
Java8 コーディングベストプラクティス and NetBeansのメモリログから...
Java8 コーディングベストプラクティス and NetBeansのメモリログから...Java8 コーディングベストプラクティス and NetBeansのメモリログから...
Java8 コーディングベストプラクティス and NetBeansのメモリログから...
なおき きしだ
 
NetBeansのメモリ使用ログから機械学習できしだが働いてるかどうか判定する
NetBeansのメモリ使用ログから機械学習できしだが働いてるかどうか判定するNetBeansのメモリ使用ログから機械学習できしだが働いてるかどうか判定する
NetBeansのメモリ使用ログから機械学習できしだが働いてるかどうか判定する
なおき きしだ
 
JavaOne2016報告
JavaOne2016報告JavaOne2016報告
JavaOne2016報告
なおき きしだ
 
コンピューティングとJava~なにわTECH道
コンピューティングとJava~なにわTECH道コンピューティングとJava~なにわTECH道
コンピューティングとJava~なにわTECH道
なおき きしだ
 
Javaプログラミング入門
Javaプログラミング入門Javaプログラミング入門
Javaプログラミング入門
なおき きしだ
 
人工知能に何ができないか
人工知能に何ができないか人工知能に何ができないか
人工知能に何ができないか
なおき きしだ
 
GraalVMの紹介とTruffleでPHPぽい言語を実装したら爆速だった話
GraalVMの紹介とTruffleでPHPぽい言語を実装したら爆速だった話GraalVMの紹介とTruffleでPHPぽい言語を実装したら爆速だった話
GraalVMの紹介とTruffleでPHPぽい言語を実装したら爆速だった話
なおき きしだ
 
これからのコンピューティングの変化とこれからのプログラミング in 福岡 2018/12/8
これからのコンピューティングの変化とこれからのプログラミング in 福岡 2018/12/8これからのコンピューティングの変化とこれからのプログラミング in 福岡 2018/12/8
これからのコンピューティングの変化とこれからのプログラミング in 福岡 2018/12/8
なおき きしだ
 
VRカメラが楽しいのでブラウザで見たくなった話
VRカメラが楽しいのでブラウザで見たくなった話VRカメラが楽しいのでブラウザで見たくなった話
VRカメラが楽しいのでブラウザで見たくなった話
なおき きしだ
 
Java新機能観察日記 - JJUGナイトセミナー
Java新機能観察日記 - JJUGナイトセミナーJava新機能観察日記 - JJUGナイトセミナー
Java新機能観察日記 - JJUGナイトセミナー
なおき きしだ
 
プログラマになるためになにを勉強するか at 九州学生エンジニアLT大会
プログラマになるためになにを勉強するか at 九州学生エンジニアLT大会プログラマになるためになにを勉強するか at 九州学生エンジニアLT大会
プログラマになるためになにを勉強するか at 九州学生エンジニアLT大会
なおき きしだ
 
これからのコンピューティングの変化とこれからのプログラミング at 広島
これからのコンピューティングの変化とこれからのプログラミング at 広島これからのコンピューティングの変化とこれからのプログラミング at 広島
これからのコンピューティングの変化とこれからのプログラミング at 広島
なおき きしだ
 
Java Release Model (on Scala Matsuri)
Java Release Model (on Scala Matsuri)Java Release Model (on Scala Matsuri)
Java Release Model (on Scala Matsuri)
なおき きしだ
 
これからのJava言語と実行環境
これからのJava言語と実行環境これからのJava言語と実行環境
これからのJava言語と実行環境
なおき きしだ
 
JavaOne2017で感じた、Javaのいまと未来 in 大阪
JavaOne2017で感じた、Javaのいまと未来 in 大阪JavaOne2017で感じた、Javaのいまと未来 in 大阪
JavaOne2017で感じた、Javaのいまと未来 in 大阪
なおき きしだ
 
Java8 コーディングベストプラクティス and NetBeansのメモリログから...
Java8 コーディングベストプラクティス and NetBeansのメモリログから...Java8 コーディングベストプラクティス and NetBeansのメモリログから...
Java8 コーディングベストプラクティス and NetBeansのメモリログから...
なおき きしだ
 
NetBeansのメモリ使用ログから機械学習できしだが働いてるかどうか判定する
NetBeansのメモリ使用ログから機械学習できしだが働いてるかどうか判定するNetBeansのメモリ使用ログから機械学習できしだが働いてるかどうか判定する
NetBeansのメモリ使用ログから機械学習できしだが働いてるかどうか判定する
なおき きしだ
 
コンピューティングとJava~なにわTECH道
コンピューティングとJava~なにわTECH道コンピューティングとJava~なにわTECH道
コンピューティングとJava~なにわTECH道
なおき きしだ
 
人工知能に何ができないか
人工知能に何ができないか人工知能に何ができないか
人工知能に何ができないか
なおき きしだ
 
Ad

Recently uploaded (20)

Adobe Lightroom Classic Crack FREE Latest link 2025
Adobe Lightroom Classic Crack FREE Latest link 2025Adobe Lightroom Classic Crack FREE Latest link 2025
Adobe Lightroom Classic Crack FREE Latest link 2025
kashifyounis067
 
Automation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath CertificateAutomation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath Certificate
VICTOR MAESTRE RAMIREZ
 
Adobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest VersionAdobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest Version
kashifyounis067
 
Exploring Code Comprehension in Scientific Programming: Preliminary Insight...
Exploring Code Comprehension  in Scientific Programming:  Preliminary Insight...Exploring Code Comprehension  in Scientific Programming:  Preliminary Insight...
Exploring Code Comprehension in Scientific Programming: Preliminary Insight...
University of Hawai‘i at Mānoa
 
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Eric D. Schabell
 
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New VersionPixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
saimabibi60507
 
Solidworks Crack 2025 latest new + license code
Solidworks Crack 2025 latest new + license codeSolidworks Crack 2025 latest new + license code
Solidworks Crack 2025 latest new + license code
aneelaramzan63
 
PDF Reader Pro Crack Latest Version FREE Download 2025
PDF Reader Pro Crack Latest Version FREE Download 2025PDF Reader Pro Crack Latest Version FREE Download 2025
PDF Reader Pro Crack Latest Version FREE Download 2025
mu394968
 
WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)
sh607827
 
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage DashboardsAdobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
BradBedford3
 
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdfMicrosoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
TechSoup
 
Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025
kashifyounis067
 
Landscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature ReviewLandscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature Review
Hironori Washizaki
 
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Andre Hora
 
EASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License CodeEASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License Code
aneelaramzan63
 
Maxon CINEMA 4D 2025 Crack FREE Download LINK
Maxon CINEMA 4D 2025 Crack FREE Download LINKMaxon CINEMA 4D 2025 Crack FREE Download LINK
Maxon CINEMA 4D 2025 Crack FREE Download LINK
younisnoman75
 
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
Andre Hora
 
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AI
Scaling GraphRAG:  Efficient Knowledge Retrieval for Enterprise AIScaling GraphRAG:  Efficient Knowledge Retrieval for Enterprise AI
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AI
danshalev
 
Who Watches the Watchmen (SciFiDevCon 2025)
Who Watches the Watchmen (SciFiDevCon 2025)Who Watches the Watchmen (SciFiDevCon 2025)
Who Watches the Watchmen (SciFiDevCon 2025)
Allon Mureinik
 
FL Studio Producer Edition Crack 2025 Full Version
FL Studio Producer Edition Crack 2025 Full VersionFL Studio Producer Edition Crack 2025 Full Version
FL Studio Producer Edition Crack 2025 Full Version
tahirabibi60507
 
Adobe Lightroom Classic Crack FREE Latest link 2025
Adobe Lightroom Classic Crack FREE Latest link 2025Adobe Lightroom Classic Crack FREE Latest link 2025
Adobe Lightroom Classic Crack FREE Latest link 2025
kashifyounis067
 
Automation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath CertificateAutomation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath Certificate
VICTOR MAESTRE RAMIREZ
 
Adobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest VersionAdobe Illustrator Crack FREE Download 2025 Latest Version
Adobe Illustrator Crack FREE Download 2025 Latest Version
kashifyounis067
 
Exploring Code Comprehension in Scientific Programming: Preliminary Insight...
Exploring Code Comprehension  in Scientific Programming:  Preliminary Insight...Exploring Code Comprehension  in Scientific Programming:  Preliminary Insight...
Exploring Code Comprehension in Scientific Programming: Preliminary Insight...
University of Hawai‘i at Mānoa
 
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Eric D. Schabell
 
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New VersionPixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
saimabibi60507
 
Solidworks Crack 2025 latest new + license code
Solidworks Crack 2025 latest new + license codeSolidworks Crack 2025 latest new + license code
Solidworks Crack 2025 latest new + license code
aneelaramzan63
 
PDF Reader Pro Crack Latest Version FREE Download 2025
PDF Reader Pro Crack Latest Version FREE Download 2025PDF Reader Pro Crack Latest Version FREE Download 2025
PDF Reader Pro Crack Latest Version FREE Download 2025
mu394968
 
WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)WinRAR Crack for Windows (100% Working 2025)
WinRAR Crack for Windows (100% Working 2025)
sh607827
 
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage DashboardsAdobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
BradBedford3
 
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdfMicrosoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
Microsoft AI Nonprofit Use Cases and Live Demo_2025.04.30.pdf
TechSoup
 
Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025
kashifyounis067
 
Landscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature ReviewLandscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature Review
Hironori Washizaki
 
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Exceptional Behaviors: How Frequently Are They Tested? (AST 2025)
Andre Hora
 
EASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License CodeEASEUS Partition Master Crack + License Code
EASEUS Partition Master Crack + License Code
aneelaramzan63
 
Maxon CINEMA 4D 2025 Crack FREE Download LINK
Maxon CINEMA 4D 2025 Crack FREE Download LINKMaxon CINEMA 4D 2025 Crack FREE Download LINK
Maxon CINEMA 4D 2025 Crack FREE Download LINK
younisnoman75
 
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
TestMigrationsInPy: A Dataset of Test Migrations from Unittest to Pytest (MSR...
Andre Hora
 
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AI
Scaling GraphRAG:  Efficient Knowledge Retrieval for Enterprise AIScaling GraphRAG:  Efficient Knowledge Retrieval for Enterprise AI
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AI
danshalev
 
Who Watches the Watchmen (SciFiDevCon 2025)
Who Watches the Watchmen (SciFiDevCon 2025)Who Watches the Watchmen (SciFiDevCon 2025)
Who Watches the Watchmen (SciFiDevCon 2025)
Allon Mureinik
 
FL Studio Producer Edition Crack 2025 Full Version
FL Studio Producer Edition Crack 2025 Full VersionFL Studio Producer Edition Crack 2025 Full Version
FL Studio Producer Edition Crack 2025 Full Version
tahirabibi60507
 

Summary of JDK10 and What will come into JDK11

  • 1. Summary of JDK10 and What will come into JDK11 2018/5/28 Naoki Kishida
  • 2. About me •  Naoki Kishida •  LINE Fukuoka •  @kis
  • 3. Agenda •  New Release Model •  About JDK 10 •  About JDK 11 •  About Java Support
  • 5. 6-monthly release •  Oracle had announced they will release Java every 6 months at 2017/9/6
  • 6. Java new release cycle. •  Feature release every 6 months –  March and September(春分の⽇/秋分の⽇) •  Maintenance release every 3 months –  April and July for March release –  October and January for September release •  Long Term Support every 3 years –  The first LTS is for JDK 11 •  Oracle JDK will be for only Oracle customer –  Use OpenJDK instead.
  • 7. Version number •  2018/03 Feature release JDK10 •  2018/04 Maintenance release JDK10.0.1 •  2018/07 Maintenance release JDK10.0.2 •  2018/09 Feature release JDK11 LTS •  2018/10 Maintenance release JDK11.0.1 LTS •  2019/01 Maintenance release JDK11.0.2 LTS
  • 8. Java SE 8 support is extended •  Oracle has extended Java SE 8 support at least until 2019/1 •  It is available for the personal use until 2020/12 •  Java SE 8 support will finish after 3 months of JDK 11 release. •  We should move to JDK 11 by 2019/1 http://www.oracle.com/technetwork/jp/java/eol-135779-ja.html
  • 9. Desktop technology •  Applet and Web Start is no longer supported after JDK 11 •  JavaFX will not be bundled with JDK11 – So far OpenJDK had not bundled JavaFX •  AWT and Swing will be supported – There are many commits for JDK 11
  • 11. Java 10 JEPs •  286 Local-Variable Type Inference •  296 Consolidate the Repository •  304 GC 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 Momory Devices •  317 Experimental Java-Based JIT Compiler •  319 Root Certificates •  322 Time-Based Release Versioning
  • 12. 286: Local-Variable Type Inferences •  var list = new ArrayList<String>() •  `var` is not a keyword – but a special type •  We can use `var` as a variable name •  We can use `var` as a method name •  We can not use `var` as a class name
  • 13. Where can we use `var`? •  OK – Right Oprand has the type •  var strs = new ArrayList<String>(); •  var path = Path.of(“http://example.com”); •  Should not – Enclosing type •  ex: Supplier<String>, Optional<String> ListenableFuture<String> •  var name = findName(id); print(name.get()); // How should we care?
  • 14. Another usage for `var` •  Anonymous class become useful – ex: defining a local method •  var m = new Object() {
 int twice(int x) {
 return x * 2;
 }
 };
 print(m.twice(3));
  • 15. 304: Garbage-Collector Interface •  GC is modularized. •  There are many GCs that will come. – Epsilon GC – ZGC – Shenandoah •  Not to control GC by user code
  • 16. 317: Experimental Java-Based JIT Compiler •  Project Metoropolis – java-on-java •  We can write JVM even with Scala? – There is a possibility.
  • 17. 307: Parallel Full GC for G1 •  G1GC had been the default GC on JDK 9 •  Full GC for G1 was not parallel. •  Until JDK 8, Parallel GC was the default •  To smooth migration, Full GC for G1GC also parallelize. •  But full GC should not occur. – Ideally, it has no effect for us.
  • 18. 310: Application Class-Data Sharing •  CDS for system class is introduced in JDK 5 •  Share class data between multiple JVM on the same machine – startup performance – reduce the resource footprint •  JDK 10 allow to use CDS for application class
  • 19. 312: Thread-Local Handshakes •  JVM can stop an individual thread – stop not just all thread
  • 20. 313: Remove the Native-Header Generation Tool(javah) •  javah is removed •  use `javac –h` instead
  • 21. 314: Additional Unicode Language-Tag Extensions •  Enhance java.util.Locale •  additional Unicode extensions of BCP 47 language tag – currency type – the first day of the week – region override – time zone
  • 22. 316: Heap Allocation on Alternative Memory Devices •  Now we can use non-volatile RAM(不 揮発性メモリ) such as 3D XPoint •  This will enable the JVM to use different types of memory system
  • 23. 319: Root Certificates •  OpenJDK doesnʼt have Root Certificates so far •  Oracle JDK have had it. •  To smooth migration, OpenJDK have had it.
  • 24. API Changes •  java.io.Reader – long transferTo(Writer) •  java.lang.mainagement.RuntimeMXBe an – long getPid() •  java.util.List/Map/Set – copyOf(Collection) •  java.util.stream.Collectors – toUnmodifiableList/Set/Map
  • 25. Docker aware •  Until JDK 9, JVM use the platform CPU count/Memory size even if it is running on Docker. •  JDK 10, JVM can use Docker setting for CPU count/ Memory size if it is running on Docker. •  VM Options –  -XX:InitialRAMPercentage –  -XX:MaxRAMPercentage –  -XX:MinRAMPercentage
  • 26. Other Changes •  Kerberos configuration file krb5.conf include *.conf in INCLUDEDIR •  -d32 and –d64 has been removed •  new JavaDoc tag. {@summary} •  policytool has been removed •  XMLInputFactory.newFactory() has been “de-deprecated” – it had been deprecated by mistake.
  • 28. Java 11 JEPs •  309 Dynamic Class-File Constants •  318 Epsilon: A No-Op Garbage Collector •  320 Remove the Java EE and CORBA Modules •  321 HTTP Client(Standard) •  323 Local-Variable Syntax for Lambda Parameters •  324 Key Agreement with Curve25519 and Curve448 •  327 Unicode 10 •  328 Flight Recorder •  329 ChaCha20 and Poly1305 Cryptographic Algorithms •  330 Launch Single-File Source-Code Programs
  • 29. Expected JEPs for JDK11 •  326 Raw String Literals •  325 Switch Expressions •  181 Nest-Based Access Control
  • 30. Launch Single-File Source-Code Programs •  java Hello.java – The file name does not need to be related with the class name •  Shebang – #! /usr/bin/java –source 10 – chmod +x hello – ./hello
  • 31. Raw String Literals •  var sql = ```select NAME
 from MEMBER
 where id=1``` •  var regexp = ```hello¥¥n```
 // same as “hello¥¥¥¥n” •  How to address indent
  • 32. Switch Expressions •  Now `switch` is a statement •  int i;
 switch (s) {
 case “start”:
 case “begin”:
 i = 0;
 break;
 case “end”:
 i = 1;
 break;
 default:
 i = 2;
  • 34. Local-Variable Syntax for Lambda Parameters •  list.map(s -> s.toUpperCase())
 .collect(toList()) •  list.map((var s) -> s.toUpperCase())
 .collect(toList()) •  list.map((@Nullable var s)
 -> s.toUpperCase())
 .collect(toList())
  • 35. HTTP Client(Standard) •  Graduate the incubator •  var client HttpClient.newHttpClient();
 var url = URI.create(url);
 var req = HttpRequest.newBuilder(uri).build();
 HttpResponse<String> res = client.send(
 req, HttpResponse.BodyHandlers.ofString(
 Charset.forName(“utf-8”));
 return res.body();
  • 36. Epsilon: A No-Op Garbage Collector •  Do nothing! •  For evaluate the performance of another feature – GC will make a noise
  • 37. Remove the Java EE and CORBA Modules •  No one uses CORBA! •  The size is large •  Removing them, JDK will be smaller
  • 38. Flight Recorder •  Logging the performance •  Now it is an open source •  Caution – for before JDK10 is still commercial
  • 39. Unicode 10 •  Support Unicode 9 and Unicode 10
  • 40. Dynamic Class-File Constants •  Use invokeDynamic for constant initialization
  • 41. Key Agreement with Curve25519 and Curve440 •  RFC 7748 •  More efficient and secure than ECDH
  • 42. ChaCha20 and Poly1305 Cryptographic Algorithms •  RFC 7539 •  Stream cypher •  Not support for TLS •  The first step of supporting in TLS
  • 43. Nestmate •  To address inner class accessibility •  from Valhalla!
  • 44. API changes in JDK11 •  String::repeat/lines/strip... •  Predicate::not •  Optional::isEmpty •  Files •  ArrayIndexOutOfBoundsException – the message is changed
  • 45. String •  repeat •  isBlank •  lines •  strip/stripLeading/stripTrailing
  • 46. Predicate::not •  lines.filter(s -> !s.isEmpty()) → lines.filter( Predicate.not(String::isEmpty))
  • 48. Files •  String Files.read(Path) •  Path FIles.write(Path, String) •  Files.isSameContent(Path, Path)
  • 49. ArrayIndexOutOfBoundsException •  jshell> new int[]{}[0] | java.lang.ArrayIndexOutOfBoundsException thrown: 0 | at (#1:1) -> jshell> new int[]{}[0] | Exception java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0 | at (#8:1)
  • 50. How about Stream#toList? •  modifiable? unmodifiable? •  What order? •  “it nulls a property of the Stream API we have take time to keep. The whole Stream API doesn't depends on the Collection API”
  • 52. Oracle JDK •  Same as the current support •  Very expensive for web servicer •  100 servers on AWS -> 1おくえん
  • 53. OpenJDK •  Official publishment says it has only 6 months support for each JDK release. No LTS •  Mark Reinhold said OpenJDK will have LTS – but not on the web site yet – LTS support is for 3 years. No overlap.
  • 54. AdoptOpenJDK •  Project by London JUG •  IBM supponsered •  Provide pre-build JDK •  LTS support for 4 years
  • 55. Zulu •  Provided by Azul System •  Free to download and use •  Enterprise support – 100 servers $28,750/year – unlimited servers $258,750/year
  • 56. Support the new era after Heisei •  Start to support the new era as NewEra •  JDK12 will release 2019/3 •  The new era will release early 2019/4 •  JDK maintenance release will be late 2019/4 – JDK 12.0.1 •  The new era will start 2019/5