@martin_fmi
JDK 10 sneak peek
Martin Toshev
Martin Toshev
@martin_fmi
Who am I
Software consultant (CoffeeCupConsulting)
BG JUG board member (http://jug.bg)
OpenJDK and Oracle RBDMS enthusiast
Twitter: @martin_fmi
Martin Toshev Prague, 19-20 October 2017
@martin_fmi
Agenda
Release overview
Feature highlights
What’s next ?
Martin Toshev Prague, 19-20 October 2017
@martin_fmi
Release overview
@martin_fmi
JDK 10
•First 6-month cadence release
•An STS (short-term release): end of support in September
•Class File Version Number: 54.0
Martin Toshev Prague, 19-20 October 2017
@martin_fmi
JDK 10
• Highlight of the release is the introduction of the var keyword
• A lot of focus put on internal performance and code improvements
• Not so many new features
• Still weak adoption from community (along with JDK 9) at present
Martin Toshev Prague, 19-20 October 2017
@martin_fmi
Implemented JEPs
•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
Martin Toshev Prague, 19-20 October 2017
• 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
@martin_fmi
Other enhancements
Martin Toshev Prague, 19-20 October 2017
•Docker container awareness
•Collections API improvements
•Optional API improvement ( orElseThrow() )
•Removed and deprecated APIs
•Less significant enhancements (such as faster JShell startup and others)
@martin_fmi
Feature highlights
@martin_fmi
JEP 286: Local-Variable Type Inference
•var keyword introduced in the Java language
•allows developers to reduce the amount of boilerplate code they write
Martin Toshev Prague, 19-20 October 2017
List<String> entities = new LinkedList<String>();
var entities = new LinkedList<String>();
@martin_fmi
JEP 310: Application Class-Data Sharing
•Provides a mechanism to reduce memory footprint of class metadata
across JVM processes
•Provides a mechanism to reduce application startup time
•At present supports only classes bundled in JAR files
•Based on the CDS feature introduced in JDK 5 (which works only with the
bootstrap class loader)
Martin Toshev Prague, 19-20 October 2017
@martin_fmi
JEP 310: Application Class-Data Sharing
1.Determine application classes for AppCDS archive:
Martin Toshev Prague, 19-20 October 2017
java -XX:+UnlockCommercialFeatures -Xshare:off -XX:+UseAppCDS
-XX:DumpLoadedClassList=application.lst -cp application.jar Main
@martin_fmi
JEP 310: Application Class-Data Sharing
2. Generate the AppCDS archive:
Martin Toshev Prague, 19-20 October 2017
java -XX:+UnlockCommercialFeatures -Xshare:dump -XX:+UseAppCDS
-XX:SharedClassListFile=application.lst
-XX:SharedArchiveFile=application.jsa
@martin_fmi
JEP 310: Application Class-Data Sharing
3. Run the application with the AppCDS archive:
Martin Toshev Prague, 19-20 October 2017
java -XX:+UnlockCommercialFeatures -Xshare:on -XX:+UseAppCDS
-XX:SharedArchiveFile=application.jsa -cp application.jar Main
@martin_fmi
JEP 317: Experimental Java-Based JIT Compiler
•Enables Graal as an experimental JIT compiler on the Linux/x64 platform
Martin Toshev Prague, 19-20 October 2017
-XX:+UnlockExperimentalVMOptions -XX:+UseJVMCICompiler
@martin_fmi
Internal performance improvements
•JEP 307: Parallel Full GC for G1
- full GC made parallel
•JEP 312: Thread-Local Handshakes
- optimization techniques allowing to stop individual threads
- enabled by default
- can be disabled:
Martin Toshev Prague, 19-20 October 2017
-XX:ParallelGCThreads=<count>
-XX:ThreadLocalHandshakes=false
@martin_fmi
Internal code restructuring
•JEP 296: Consolidate the JDK Forest into a Single Repository
- previously there were child repositories (langtools, jaxp etc.)
- these are now consolidated as part of the root repository
•JEP 304: Garbage-Collector Interface
- changed source structure to allow for easier addition of new GCs
- previous structure didn’t sandbox GCs enough
Martin Toshev Prague, 19-20 October 2017
@martin_fmi
JEP 319: Root Certificates
•cacerts file now contains a default set of Cas
•they are part of Oracle’s Java SE Root CA program
Martin Toshev Prague, 19-20 October 2017
keytool -list -v -keystore %JAVA_HOME%jre_10.0.1libsecuritycacerts
@martin_fmi
JEP 313: Remove the Native-Header
Generation Tool (javah)
•The javah tool removed from JDK distribution
•javah functionality replaced by enhancements to javac
Martin Toshev Prague, 19-20 October 2017
@martin_fmi
JEP 314: Additional Unicode
Language-Tag Extensions
•Java.util.Locale and other APIs (such as java.text.DateFormat) support the
following language-tag extensions:
• cu (currency type)
• fw (first day of week)
• rg (region override)
• tz (time zone)
Martin Toshev Prague, 19-20 October 2017
@martin_fmi
JEP 316: Heap Allocation
on Alternative Memory Devices
•Provides the ability to allocate heap space on alternative memory devices
Martin Toshev Prague, 19-20 October 2017
-
XX:AllocateHeapAt=<path>
@martin_fmi
JEP 322: Time-Based Release Versioning
•Required due to the 6-month release cadence
•Runtime.Version API enhanced with new methods
•Two new system properties added:
o java.version.date
o java.vendor.version
•Java launcher enhanced to display additional version information
Martin Toshev Prague, 19-20 October 2017
@martin_fmi
Docker container awareness
•The JVM is modified to support Docker container awareness
•Proper information (CPU/memory) retrieved from the container rather than
the OS
Martin Toshev Prague, 19-20 October 2017
-XX:-UseContainerSupport
@martin_fmi
Docker container awareness
•More options introduced in that regard:
Martin Toshev Prague, 19-20 October 2017
-XX:ActiveProcessorCount=<count>
-XX:InitialRAMPercentage=<percentage>
-XX:MaxRAMPercentage=<percentage>
-XX:MinRAMPercentage=<percentage>
@martin_fmi
Optional API
•A new method introduced: orElseThrow()
•A better alternative of get()
Martin Toshev Prague, 19-20 October 2017
Optional x = Optional.ofNullable(null);
x.orElseThrow( () -> {
return new RuntimeException("Optional value is null");});
@martin_fmi
Collections API
• New collection API methods that allow the creation of unmodifiable
collections:
Martin Toshev Prague, 19-20 October 2017
List<String> entitiesListCopy = List.copyOf(entitiesList);
Set<String> entitiesSetCopy = Set.copyOf(entitiesSet);
Map<String, String> entitiesMapCopy = Map.copyOf(entitiesMap);
entitiesList.stream().collect(Collectors.toUnmodifiableList());
entitiesSet.stream().collect(Collectors.toUnmodifiableSet());
entitiesMap.entrySet().stream().collect(
Collectors.toUnmodifiableMap(e -> e.getKey(), e -> e.getValue()));
@martin_fmi
What’s next ?
@martin_fmi
JDK 11
• Target proposals:
o 309: Dynamic Class-File Constants 
o 318: Epsilon: A No-Op Garbage Collector 
o 320: Remove the Java EE and CORBA Modules 
o 321: HTTP Client (Standard) 
o 323: Local-Variable Syntax for Lambda Parameters 
o 324: Key Agreement with Curve25519 and Curve448 
o 327: Unicode 10 
o 328: Flight Recorder 
o 329: ChaCha20 and Poly1305 Cryptographic Algorithms 
o 330: Launch Single-File Source-Code Programs 
Martin Toshev Prague, 19-20 October 2017
@martin_fmi
JDK <N>
• Project Panama
• Project Valhalla
• Project Loom
• GraalVM/Truffle
• Project Metropolis
• More to come …
Martin Toshev Prague, 19-20 October 2017
@martin_fmi
Summary
• JDK 10 is a milestone for new release cadence of the JDK
• Major highlights: var keyword, AppCDS, Graal JIT experimental support
• Provides performance improvements
• Provides container awareness for JVM applications
Martin Toshev Prague, 19-20 October 2017
@martin_fmi
References
JDK 10 enhancement proposals
http://openjdk.java.net/projects/jdk/10/
JDK 10 release notes
http://openjdk.java.net/projects/jdk/10/
Martin Toshev Prague, 19-20 October 2017
@martin_fmi
References
JDK 10 Whitepaper
https://developer.oracle.com/devo/res/pdf/1385446602743/Oracle-
Java10.pdf
Java SE 10 final release specification
http://cr.openjdk.java.net/~iris/se/10/latestSpec/
Martin Toshev Prague, 19-20 October 2017

More Related Content

PPT
Semantic Technology In Oracle Database 12c
PPT
Java 9 Security Enhancements in Practice
PPTX
Akamai Edge: Tracking the Performance of the Web with HTTP Archive
PDF
Red Hat Summit 2017 - LT107508 - Better Managing your Red Hat footprint with ...
PPTX
.NET Fest 2017. Константин Проскурдин. Marten как хранилище документов для .N...
ODP
Dataspace presentatie
PDF
T6.6 Sensitive Data Activities
PDF
Alexander Sibiryakov- Frontera
Semantic Technology In Oracle Database 12c
Java 9 Security Enhancements in Practice
Akamai Edge: Tracking the Performance of the Web with HTTP Archive
Red Hat Summit 2017 - LT107508 - Better Managing your Red Hat footprint with ...
.NET Fest 2017. Константин Проскурдин. Marten как хранилище документов для .N...
Dataspace presentatie
T6.6 Sensitive Data Activities
Alexander Sibiryakov- Frontera

What's hot (20)

PPTX
MongoDB + Spring
PDF
iRODS UGM 2018 Fair data management and DISQOVERability
PPTX
Gh registry day_1_edited
PPTX
Level 101 for Presto: What is PrestoDB?
PDF
Datafying Bitcoins
PDF
Data pipelines observability: OpenLineage & Marquez
PDF
Open core summit: Observability for data pipelines with OpenLineage
PPTX
Python and MongoDB as a Market Data Platform by James Blackburn
PPTX
Eagle6 Enterprise Situational Awareness
PDF
Expert Roundtable: The Future of Metadata After Hive Metastore
PDF
Linking Metrics to Logs using Loki
PDF
Data lineage and observability with Marquez - subsurface 2020
PDF
PDF
MongoDB Schema Design Tips & Tricks
PPT
MongoDB Tick Data Presentation
PDF
Cncf microservices security
PPT
20101020 harper
PPT
Handle 08
PPTX
Client-Assisted Memento Aggregation Using the Prefer Header
PPTX
How to deploy a smart city platform?
MongoDB + Spring
iRODS UGM 2018 Fair data management and DISQOVERability
Gh registry day_1_edited
Level 101 for Presto: What is PrestoDB?
Datafying Bitcoins
Data pipelines observability: OpenLineage & Marquez
Open core summit: Observability for data pipelines with OpenLineage
Python and MongoDB as a Market Data Platform by James Blackburn
Eagle6 Enterprise Situational Awareness
Expert Roundtable: The Future of Metadata After Hive Metastore
Linking Metrics to Logs using Loki
Data lineage and observability with Marquez - subsurface 2020
MongoDB Schema Design Tips & Tricks
MongoDB Tick Data Presentation
Cncf microservices security
20101020 harper
Handle 08
Client-Assisted Memento Aggregation Using the Prefer Header
How to deploy a smart city platform?
Ad

Similar to Jdk 10 sneak peek (20)

PPTX
Polyglot metadata for Hadoop
PDF
Spark Community Update - Spark Summit San Francisco 2015
PPTX
Devteach 2017 Store 2 million of audit a day into elasticsearch
PPTX
Introduction to Yasson
PDF
Feature Bits at LSSC10
PPTX
ALM Search Presentation for the VSS Arch Council
PPTX
Intro elasticsearch taswarbhatti
PPTX
IPTC News in JSON Spring 2013
PDF
GBIF API Hackaton, March 2015, Leiden, Sp2000/GBIF
PDF
Lessons Learned While Scaling Elasticsearch at Vinted
PDF
Getty Vocabulary Program LOD: Ontologies and Semantic Representation
PDF
James Coplien: Trygve - Oct 17, 2016
PDF
2nd RINASim Webinar
PDF
BICOD-2017
PDF
Bicod2017
PDF
Data access and data extraction services within the Land Imagery Portal
PPT
Tech WG report 2011
PDF
Boosting command line experience with python and awk
PPTX
Tolog Updates
PPTX
Visualizing Austin's data with Elasticsearch and Kibana
Polyglot metadata for Hadoop
Spark Community Update - Spark Summit San Francisco 2015
Devteach 2017 Store 2 million of audit a day into elasticsearch
Introduction to Yasson
Feature Bits at LSSC10
ALM Search Presentation for the VSS Arch Council
Intro elasticsearch taswarbhatti
IPTC News in JSON Spring 2013
GBIF API Hackaton, March 2015, Leiden, Sp2000/GBIF
Lessons Learned While Scaling Elasticsearch at Vinted
Getty Vocabulary Program LOD: Ontologies and Semantic Representation
James Coplien: Trygve - Oct 17, 2016
2nd RINASim Webinar
BICOD-2017
Bicod2017
Data access and data extraction services within the Land Imagery Portal
Tech WG report 2011
Boosting command line experience with python and awk
Tolog Updates
Visualizing Austin's data with Elasticsearch and Kibana
Ad

More from Martin Toshev (20)

PPTX
Building highly scalable data pipelines with Apache Spark
PPTX
Big data processing with Apache Spark and Oracle Database
PPTX
Practical security In a modular world
PPTX
Java 9 sneak peek
PPTX
Writing Stored Procedures in Oracle RDBMS
PPTX
Spring RabbitMQ
PPTX
Security Architecture of the Java platform
PPTX
Oracle Database 12c Attack Vectors
PPTX
JVM++: The Graal VM
PPTX
RxJS vs RxJava: Intro
PPTX
Security Аrchitecture of Тhe Java Platform
PPTX
Spring RabbitMQ
PPTX
Writing Stored Procedures with Oracle Database 12c
PDF
Concurrency Utilities in Java 8
PPTX
The RabbitMQ Message Broker
PPTX
Security Architecture of the Java Platform (BG OUG, Plovdiv, 13.06.2015)
PPTX
Modularity of The Java Platform Javaday (http://javaday.org.ua/)
PPTX
Writing Java Stored Procedures in Oracle 12c
PDF
KDB database (EPAM tech talks, Sofia, April, 2015)
PDF
Eclipse plug in development
Building highly scalable data pipelines with Apache Spark
Big data processing with Apache Spark and Oracle Database
Practical security In a modular world
Java 9 sneak peek
Writing Stored Procedures in Oracle RDBMS
Spring RabbitMQ
Security Architecture of the Java platform
Oracle Database 12c Attack Vectors
JVM++: The Graal VM
RxJS vs RxJava: Intro
Security Аrchitecture of Тhe Java Platform
Spring RabbitMQ
Writing Stored Procedures with Oracle Database 12c
Concurrency Utilities in Java 8
The RabbitMQ Message Broker
Security Architecture of the Java Platform (BG OUG, Plovdiv, 13.06.2015)
Modularity of The Java Platform Javaday (http://javaday.org.ua/)
Writing Java Stored Procedures in Oracle 12c
KDB database (EPAM tech talks, Sofia, April, 2015)
Eclipse plug in development

Recently uploaded (20)

PDF
Produktkatalog für HOBO Datenlogger, Wetterstationen, Sensoren, Software und ...
PPTX
The various Industrial Revolutions .pptx
PDF
Convolutional neural network based encoder-decoder for efficient real-time ob...
PDF
How IoT Sensor Integration in 2025 is Transforming Industries Worldwide
PDF
Comparative analysis of machine learning models for fake news detection in so...
PDF
Enhancing plagiarism detection using data pre-processing and machine learning...
PDF
Five Habits of High-Impact Board Members
PDF
Zenith AI: Advanced Artificial Intelligence
PDF
Developing a website for English-speaking practice to English as a foreign la...
DOCX
search engine optimization ppt fir known well about this
PPTX
Configure Apache Mutual Authentication
PDF
UiPath Agentic Automation session 1: RPA to Agents
PDF
Getting started with AI Agents and Multi-Agent Systems
PPTX
Microsoft Excel 365/2024 Beginner's training
PDF
A contest of sentiment analysis: k-nearest neighbor versus neural network
PDF
“A New Era of 3D Sensing: Transforming Industries and Creating Opportunities,...
PPTX
Final SEM Unit 1 for mit wpu at pune .pptx
PPT
What is a Computer? Input Devices /output devices
PDF
Hybrid horned lizard optimization algorithm-aquila optimizer for DC motor
PDF
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
Produktkatalog für HOBO Datenlogger, Wetterstationen, Sensoren, Software und ...
The various Industrial Revolutions .pptx
Convolutional neural network based encoder-decoder for efficient real-time ob...
How IoT Sensor Integration in 2025 is Transforming Industries Worldwide
Comparative analysis of machine learning models for fake news detection in so...
Enhancing plagiarism detection using data pre-processing and machine learning...
Five Habits of High-Impact Board Members
Zenith AI: Advanced Artificial Intelligence
Developing a website for English-speaking practice to English as a foreign la...
search engine optimization ppt fir known well about this
Configure Apache Mutual Authentication
UiPath Agentic Automation session 1: RPA to Agents
Getting started with AI Agents and Multi-Agent Systems
Microsoft Excel 365/2024 Beginner's training
A contest of sentiment analysis: k-nearest neighbor versus neural network
“A New Era of 3D Sensing: Transforming Industries and Creating Opportunities,...
Final SEM Unit 1 for mit wpu at pune .pptx
What is a Computer? Input Devices /output devices
Hybrid horned lizard optimization algorithm-aquila optimizer for DC motor
How ambidextrous entrepreneurial leaders react to the artificial intelligence...

Jdk 10 sneak peek

  • 1. @martin_fmi JDK 10 sneak peek Martin Toshev Martin Toshev
  • 2. @martin_fmi Who am I Software consultant (CoffeeCupConsulting) BG JUG board member (http://jug.bg) OpenJDK and Oracle RBDMS enthusiast Twitter: @martin_fmi Martin Toshev Prague, 19-20 October 2017
  • 3. @martin_fmi Agenda Release overview Feature highlights What’s next ? Martin Toshev Prague, 19-20 October 2017
  • 5. @martin_fmi JDK 10 •First 6-month cadence release •An STS (short-term release): end of support in September •Class File Version Number: 54.0 Martin Toshev Prague, 19-20 October 2017
  • 6. @martin_fmi JDK 10 • Highlight of the release is the introduction of the var keyword • A lot of focus put on internal performance and code improvements • Not so many new features • Still weak adoption from community (along with JDK 9) at present Martin Toshev Prague, 19-20 October 2017
  • 7. @martin_fmi Implemented JEPs •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 Martin Toshev Prague, 19-20 October 2017 • 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
  • 8. @martin_fmi Other enhancements Martin Toshev Prague, 19-20 October 2017 •Docker container awareness •Collections API improvements •Optional API improvement ( orElseThrow() ) •Removed and deprecated APIs •Less significant enhancements (such as faster JShell startup and others)
  • 10. @martin_fmi JEP 286: Local-Variable Type Inference •var keyword introduced in the Java language •allows developers to reduce the amount of boilerplate code they write Martin Toshev Prague, 19-20 October 2017 List<String> entities = new LinkedList<String>(); var entities = new LinkedList<String>();
  • 11. @martin_fmi JEP 310: Application Class-Data Sharing •Provides a mechanism to reduce memory footprint of class metadata across JVM processes •Provides a mechanism to reduce application startup time •At present supports only classes bundled in JAR files •Based on the CDS feature introduced in JDK 5 (which works only with the bootstrap class loader) Martin Toshev Prague, 19-20 October 2017
  • 12. @martin_fmi JEP 310: Application Class-Data Sharing 1.Determine application classes for AppCDS archive: Martin Toshev Prague, 19-20 October 2017 java -XX:+UnlockCommercialFeatures -Xshare:off -XX:+UseAppCDS -XX:DumpLoadedClassList=application.lst -cp application.jar Main
  • 13. @martin_fmi JEP 310: Application Class-Data Sharing 2. Generate the AppCDS archive: Martin Toshev Prague, 19-20 October 2017 java -XX:+UnlockCommercialFeatures -Xshare:dump -XX:+UseAppCDS -XX:SharedClassListFile=application.lst -XX:SharedArchiveFile=application.jsa
  • 14. @martin_fmi JEP 310: Application Class-Data Sharing 3. Run the application with the AppCDS archive: Martin Toshev Prague, 19-20 October 2017 java -XX:+UnlockCommercialFeatures -Xshare:on -XX:+UseAppCDS -XX:SharedArchiveFile=application.jsa -cp application.jar Main
  • 15. @martin_fmi JEP 317: Experimental Java-Based JIT Compiler •Enables Graal as an experimental JIT compiler on the Linux/x64 platform Martin Toshev Prague, 19-20 October 2017 -XX:+UnlockExperimentalVMOptions -XX:+UseJVMCICompiler
  • 16. @martin_fmi Internal performance improvements •JEP 307: Parallel Full GC for G1 - full GC made parallel •JEP 312: Thread-Local Handshakes - optimization techniques allowing to stop individual threads - enabled by default - can be disabled: Martin Toshev Prague, 19-20 October 2017 -XX:ParallelGCThreads=<count> -XX:ThreadLocalHandshakes=false
  • 17. @martin_fmi Internal code restructuring •JEP 296: Consolidate the JDK Forest into a Single Repository - previously there were child repositories (langtools, jaxp etc.) - these are now consolidated as part of the root repository •JEP 304: Garbage-Collector Interface - changed source structure to allow for easier addition of new GCs - previous structure didn’t sandbox GCs enough Martin Toshev Prague, 19-20 October 2017
  • 18. @martin_fmi JEP 319: Root Certificates •cacerts file now contains a default set of Cas •they are part of Oracle’s Java SE Root CA program Martin Toshev Prague, 19-20 October 2017 keytool -list -v -keystore %JAVA_HOME%jre_10.0.1libsecuritycacerts
  • 19. @martin_fmi JEP 313: Remove the Native-Header Generation Tool (javah) •The javah tool removed from JDK distribution •javah functionality replaced by enhancements to javac Martin Toshev Prague, 19-20 October 2017
  • 20. @martin_fmi JEP 314: Additional Unicode Language-Tag Extensions •Java.util.Locale and other APIs (such as java.text.DateFormat) support the following language-tag extensions: • cu (currency type) • fw (first day of week) • rg (region override) • tz (time zone) Martin Toshev Prague, 19-20 October 2017
  • 21. @martin_fmi JEP 316: Heap Allocation on Alternative Memory Devices •Provides the ability to allocate heap space on alternative memory devices Martin Toshev Prague, 19-20 October 2017 - XX:AllocateHeapAt=<path>
  • 22. @martin_fmi JEP 322: Time-Based Release Versioning •Required due to the 6-month release cadence •Runtime.Version API enhanced with new methods •Two new system properties added: o java.version.date o java.vendor.version •Java launcher enhanced to display additional version information Martin Toshev Prague, 19-20 October 2017
  • 23. @martin_fmi Docker container awareness •The JVM is modified to support Docker container awareness •Proper information (CPU/memory) retrieved from the container rather than the OS Martin Toshev Prague, 19-20 October 2017 -XX:-UseContainerSupport
  • 24. @martin_fmi Docker container awareness •More options introduced in that regard: Martin Toshev Prague, 19-20 October 2017 -XX:ActiveProcessorCount=<count> -XX:InitialRAMPercentage=<percentage> -XX:MaxRAMPercentage=<percentage> -XX:MinRAMPercentage=<percentage>
  • 25. @martin_fmi Optional API •A new method introduced: orElseThrow() •A better alternative of get() Martin Toshev Prague, 19-20 October 2017 Optional x = Optional.ofNullable(null); x.orElseThrow( () -> { return new RuntimeException("Optional value is null");});
  • 26. @martin_fmi Collections API • New collection API methods that allow the creation of unmodifiable collections: Martin Toshev Prague, 19-20 October 2017 List<String> entitiesListCopy = List.copyOf(entitiesList); Set<String> entitiesSetCopy = Set.copyOf(entitiesSet); Map<String, String> entitiesMapCopy = Map.copyOf(entitiesMap); entitiesList.stream().collect(Collectors.toUnmodifiableList()); entitiesSet.stream().collect(Collectors.toUnmodifiableSet()); entitiesMap.entrySet().stream().collect( Collectors.toUnmodifiableMap(e -> e.getKey(), e -> e.getValue()));
  • 28. @martin_fmi JDK 11 • Target proposals: o 309: Dynamic Class-File Constants  o 318: Epsilon: A No-Op Garbage Collector  o 320: Remove the Java EE and CORBA Modules  o 321: HTTP Client (Standard)  o 323: Local-Variable Syntax for Lambda Parameters  o 324: Key Agreement with Curve25519 and Curve448  o 327: Unicode 10  o 328: Flight Recorder  o 329: ChaCha20 and Poly1305 Cryptographic Algorithms  o 330: Launch Single-File Source-Code Programs  Martin Toshev Prague, 19-20 October 2017
  • 29. @martin_fmi JDK <N> • Project Panama • Project Valhalla • Project Loom • GraalVM/Truffle • Project Metropolis • More to come … Martin Toshev Prague, 19-20 October 2017
  • 30. @martin_fmi Summary • JDK 10 is a milestone for new release cadence of the JDK • Major highlights: var keyword, AppCDS, Graal JIT experimental support • Provides performance improvements • Provides container awareness for JVM applications Martin Toshev Prague, 19-20 October 2017
  • 31. @martin_fmi References JDK 10 enhancement proposals http://openjdk.java.net/projects/jdk/10/ JDK 10 release notes http://openjdk.java.net/projects/jdk/10/ Martin Toshev Prague, 19-20 October 2017
  • 32. @martin_fmi References JDK 10 Whitepaper https://developer.oracle.com/devo/res/pdf/1385446602743/Oracle- Java10.pdf Java SE 10 final release specification http://cr.openjdk.java.net/~iris/se/10/latestSpec/ Martin Toshev Prague, 19-20 October 2017

Editor's Notes

  • #6: TLS being the predecessor of SSL is not interoperable with SSL …
  • #7: TLS being the predecessor of SSL is not interoperable with SSL …
  • #8: TLS being the predecessor of SSL is not interoperable with SSL …
  • #9: TLS being the predecessor of SSL is not interoperable with SSL …
  • #11: TLS being the predecessor of SSL is not interoperable with SSL …
  • #12: TLS being the predecessor of SSL is not interoperable with SSL …
  • #13: TLS being the predecessor of SSL is not interoperable with SSL …
  • #14: TLS being the predecessor of SSL is not interoperable with SSL …
  • #15: TLS being the predecessor of SSL is not interoperable with SSL …
  • #16: TLS being the predecessor of SSL is not interoperable with SSL …
  • #17: TLS being the predecessor of SSL is not interoperable with SSL …
  • #18: TLS being the predecessor of SSL is not interoperable with SSL …
  • #19: TLS being the predecessor of SSL is not interoperable with SSL …
  • #20: TLS being the predecessor of SSL is not interoperable with SSL …
  • #21: TLS being the predecessor of SSL is not interoperable with SSL …
  • #22: TLS being the predecessor of SSL is not interoperable with SSL …
  • #23: TLS being the predecessor of SSL is not interoperable with SSL …
  • #24: TLS being the predecessor of SSL is not interoperable with SSL …
  • #25: TLS being the predecessor of SSL is not interoperable with SSL …
  • #26: TLS being the predecessor of SSL is not interoperable with SSL …
  • #27: TLS being the predecessor of SSL is not interoperable with SSL …
  • #29: TLS being the predecessor of SSL is not interoperable with SSL …
  • #30: TLS being the predecessor of SSL is not interoperable with SSL …