SlideShare a Scribd company logo
1 of 29
Overview
THOMAS ENGELS – CONSULTANT – G36
Planning
 New features
 Improved-extend features
 Deprecated-removed features
 Review
 Java 10
New features
Most important features
 Modularity
 Incubator
 Jshell
 Jlink
 G1
 HTTP 2
 Flow API
 http://jdk.java.net/9/release-notes
Modularity
 Planned for java 7
 Makes internal JDK api’s inaccessible
 “Biggest” change since existance of JAVA
Why?
 No need to run full JDK  only modules you need
 Encapsulate most internal APIs
 Increase maintainability  can’t use internal-not exposed public methods
Declaration
 Module-info.java
 Requires (transitieve)
 Exports (to)
 Uses
 Opens
 Provides … with …
Demo
Incubator
 Non final APIs
 Finalized or removed in future release
 No “lifecycle” strategy
 No @deprecated
 Warning at run time
Jlink
 Tool to assemble and optimize modules and their dependencies into a
custom run-time image.
 Reduces run time & footprint  performance
 Unused code is know at link time (not yet implemented)
 Plugin  optimization and expansion after release
 use JLINK modules obligated
Compile
Link
(optional)
run
Link time to do whole-world optimizations instead of at compile time or costly at run-time.
JShell
 Java read-eval-print loop tool
 Test code without creating project
 Prototyping
Demo
Garbage collection in JVM
 Currently 4
 Serial Garbage Collector
 Parallel Garbage Collector (current default)
 CMS Garbage Collector
 G1 Garbage Collector
 Remove less used GC combinations
 DefNew + CMS
 ParNew + SerialOld
 Incremental CMS
G1
 Garbage first
 >=JDK7 update 4
 Replaces CMS (deprecated)  more efficient
java -XX:+UseG1GC -jar Application.java
How G1 works
 Parallel
 Partial
 Less pause / more frequently
 Large heaps
HTTP client en HTTP2
WHO EVER USED javav.net.HTTPURLConnection?
HTTPClient
Features
 Incubating Feature
 websockets
 Builder
 Http2 support
Why
 URLConnection multiple protocols
 API too abstract
 blocking mode only
What is HTTP/2
 Same as HTTP 1.1
 Request/response based
 All http calls work
 Different then HTTP 1.1
 Binary protocol
 http 2 is TLS only (browser)
 Multiplex over single connection
 Server push capability
Demo
Flow API
reactive programming
 Publisher
 Subscriber
 Subscription
 Processor
No implementation in jdk
Demo
smallthings
 Collection factory methods
 Private methods in Interfaces
 Stream methods
Demo
Java doc
 Improved search
 No need to return to Google
 HTML5 compliant
 Java 9 doc
Deprecated/Removed
 Finalize()
 Boxed primitive constructors
 valueOf(int)
 parseInt(String)
 ‘_’ reserved keyword
 Jhat
 Launch-time JRE version selection
 GC combinations
Java 9 review
Good
 Platform more mature
 Faster releases
Bad
 No long term support
 more, More, MORE
 not-platform specific  community
 JAVA still OOP?
 Unnecessary methods
Java 10 ~ Project Valhalla
 Incubator module like HTTP2
 Value types
 Generic specialization
 Reified generics
 Improved volatile support
Any questions?
Happy coding

More Related Content

What's hot

Lecture android best practices
Lecture   android best practicesLecture   android best practices
Lecture android best practices
eleksdev
 
Spring boot 3g
Spring boot 3gSpring boot 3g
Spring boot 3g
vasya10
 
Adopting Debug Adapter Protocol in Eclipse IDE: netcoredbg (.NET debugger) ca...
Adopting Debug Adapter Protocol in Eclipse IDE: netcoredbg (.NET debugger) ca...Adopting Debug Adapter Protocol in Eclipse IDE: netcoredbg (.NET debugger) ca...
Adopting Debug Adapter Protocol in Eclipse IDE: netcoredbg (.NET debugger) ca...
Mickael Istria
 

What's hot (20)

Maven basics
Maven basicsMaven basics
Maven basics
 
Eclipse RCP
Eclipse RCPEclipse RCP
Eclipse RCP
 
BDD using Cucumber JVM
BDD using Cucumber JVMBDD using Cucumber JVM
BDD using Cucumber JVM
 
Lecture android best practices
Lecture   android best practicesLecture   android best practices
Lecture android best practices
 
Part 3 JasForge the collaborative and agile project v1.0
Part 3   JasForge the collaborative and agile project v1.0Part 3   JasForge the collaborative and agile project v1.0
Part 3 JasForge the collaborative and agile project v1.0
 
FAST for SharePoint Deep Dive
FAST for SharePoint Deep DiveFAST for SharePoint Deep Dive
FAST for SharePoint Deep Dive
 
Maven tutorial
Maven tutorialMaven tutorial
Maven tutorial
 
Spring boot 3g
Spring boot 3gSpring boot 3g
Spring boot 3g
 
Quarkus and GraalVM
Quarkus and GraalVMQuarkus and GraalVM
Quarkus and GraalVM
 
Triple E class DevOps with Hudson, Maven, Kokki/Multiconf and PyDev
Triple E class DevOps with Hudson, Maven, Kokki/Multiconf and PyDevTriple E class DevOps with Hudson, Maven, Kokki/Multiconf and PyDev
Triple E class DevOps with Hudson, Maven, Kokki/Multiconf and PyDev
 
Adopting Debug Adapter Protocol in Eclipse IDE: netcoredbg (.NET debugger) ca...
Adopting Debug Adapter Protocol in Eclipse IDE: netcoredbg (.NET debugger) ca...Adopting Debug Adapter Protocol in Eclipse IDE: netcoredbg (.NET debugger) ca...
Adopting Debug Adapter Protocol in Eclipse IDE: netcoredbg (.NET debugger) ca...
 
java new technology
java new technologyjava new technology
java new technology
 
Polygot Java EE on the GraalVM
Polygot Java EE on the GraalVMPolygot Java EE on the GraalVM
Polygot Java EE on the GraalVM
 
Spring Framework 5.0: Hidden Gems
Spring Framework 5.0: Hidden GemsSpring Framework 5.0: Hidden Gems
Spring Framework 5.0: Hidden Gems
 
Тестирование мобильных приложений используя облачные сервисы. TestDroid, Test...
Тестирование мобильных приложений используя облачные сервисы. TestDroid, Test...Тестирование мобильных приложений используя облачные сервисы. TestDroid, Test...
Тестирование мобильных приложений используя облачные сервисы. TestDroid, Test...
 
Migrating to Java 9 Modules
Migrating to Java 9 ModulesMigrating to Java 9 Modules
Migrating to Java 9 Modules
 
Spring boot
Spring bootSpring boot
Spring boot
 
Introduction To Eclipse RCP
Introduction To Eclipse RCPIntroduction To Eclipse RCP
Introduction To Eclipse RCP
 
Arquillian 소개
Arquillian 소개Arquillian 소개
Arquillian 소개
 
White paper mbre_en
White paper mbre_enWhite paper mbre_en
White paper mbre_en
 

Similar to Knowledge sharing session Java 9

SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
Fred Sauer
 
Travelling Light for the Long Haul - Ian Robinson
Travelling Light for the Long Haul -  Ian RobinsonTravelling Light for the Long Haul -  Ian Robinson
Travelling Light for the Long Haul - Ian Robinson
mfrancis
 
Travelling light for the long haul
Travelling light for the long haulTravelling light for the long haul
Travelling light for the long haul
Ian Robinson
 

Similar to Knowledge sharing session Java 9 (20)

Java 9 and Beyond
Java 9 and BeyondJava 9 and Beyond
Java 9 and Beyond
 
SilverStripe Meetup 03/03/2011
SilverStripe Meetup 03/03/2011SilverStripe Meetup 03/03/2011
SilverStripe Meetup 03/03/2011
 
SilverStripe Meetup Presentation 03/03/2011
SilverStripe Meetup Presentation 03/03/2011SilverStripe Meetup Presentation 03/03/2011
SilverStripe Meetup Presentation 03/03/2011
 
node.js 실무 - node js in practice by Jesang Yoon
node.js 실무 - node js in practice by Jesang Yoonnode.js 실무 - node js in practice by Jesang Yoon
node.js 실무 - node js in practice by Jesang Yoon
 
Ionic framework one day training
Ionic framework one day trainingIonic framework one day training
Ionic framework one day training
 
Java 9 sneak peek
Java 9 sneak peekJava 9 sneak peek
Java 9 sneak peek
 
Illia shestakov - The Future of Java JDK #9
Illia shestakov - The Future of Java JDK #9Illia shestakov - The Future of Java JDK #9
Illia shestakov - The Future of Java JDK #9
 
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And Beyond
 
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
 
ESIGate dev meeting #4 21-11-2013
ESIGate dev meeting #4 21-11-2013ESIGate dev meeting #4 21-11-2013
ESIGate dev meeting #4 21-11-2013
 
Jbpm online training
Jbpm online trainingJbpm online training
Jbpm online training
 
Plugin-based software design with Ruby and RubyGems
Plugin-based software design with Ruby and RubyGemsPlugin-based software design with Ruby and RubyGems
Plugin-based software design with Ruby and RubyGems
 
QConSP 2018 - Java Module System
QConSP 2018 - Java Module SystemQConSP 2018 - Java Module System
QConSP 2018 - Java Module System
 
A Journey through the JDKs (Java 9 to Java 11)
A Journey through the JDKs (Java 9 to Java 11)A Journey through the JDKs (Java 9 to Java 11)
A Journey through the JDKs (Java 9 to Java 11)
 
Bots on guard of sdlc
Bots on guard of sdlcBots on guard of sdlc
Bots on guard of sdlc
 
HTML5 - The Python Angle (PyCon Ireland 2010)
HTML5 - The Python Angle (PyCon Ireland 2010)HTML5 - The Python Angle (PyCon Ireland 2010)
HTML5 - The Python Angle (PyCon Ireland 2010)
 
Travelling Light for the Long Haul - Ian Robinson
Travelling Light for the Long Haul -  Ian RobinsonTravelling Light for the Long Haul -  Ian Robinson
Travelling Light for the Long Haul - Ian Robinson
 
Travelling light for the long haul
Travelling light for the long haulTravelling light for the long haul
Travelling light for the long haul
 
Introduction to Codenvy / JugSummerCamp 2014
Introduction to Codenvy / JugSummerCamp 2014Introduction to Codenvy / JugSummerCamp 2014
Introduction to Codenvy / JugSummerCamp 2014
 

Recently uploaded

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Recently uploaded (20)

Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 

Knowledge sharing session Java 9

  • 1. Overview THOMAS ENGELS – CONSULTANT – G36
  • 2. Planning  New features  Improved-extend features  Deprecated-removed features  Review  Java 10
  • 4. Most important features  Modularity  Incubator  Jshell  Jlink  G1  HTTP 2  Flow API  http://jdk.java.net/9/release-notes
  • 5. Modularity  Planned for java 7  Makes internal JDK api’s inaccessible  “Biggest” change since existance of JAVA
  • 6. Why?  No need to run full JDK  only modules you need  Encapsulate most internal APIs  Increase maintainability  can’t use internal-not exposed public methods
  • 7. Declaration  Module-info.java  Requires (transitieve)  Exports (to)  Uses  Opens  Provides … with …
  • 9. Incubator  Non final APIs  Finalized or removed in future release  No “lifecycle” strategy  No @deprecated  Warning at run time
  • 10. Jlink  Tool to assemble and optimize modules and their dependencies into a custom run-time image.  Reduces run time & footprint  performance  Unused code is know at link time (not yet implemented)  Plugin  optimization and expansion after release  use JLINK modules obligated
  • 11. Compile Link (optional) run Link time to do whole-world optimizations instead of at compile time or costly at run-time.
  • 12. JShell  Java read-eval-print loop tool  Test code without creating project  Prototyping
  • 13. Demo
  • 14. Garbage collection in JVM  Currently 4  Serial Garbage Collector  Parallel Garbage Collector (current default)  CMS Garbage Collector  G1 Garbage Collector  Remove less used GC combinations  DefNew + CMS  ParNew + SerialOld  Incremental CMS
  • 15. G1  Garbage first  >=JDK7 update 4  Replaces CMS (deprecated)  more efficient java -XX:+UseG1GC -jar Application.java
  • 16. How G1 works  Parallel  Partial  Less pause / more frequently  Large heaps
  • 17. HTTP client en HTTP2 WHO EVER USED javav.net.HTTPURLConnection?
  • 18. HTTPClient Features  Incubating Feature  websockets  Builder  Http2 support Why  URLConnection multiple protocols  API too abstract  blocking mode only
  • 19. What is HTTP/2  Same as HTTP 1.1  Request/response based  All http calls work  Different then HTTP 1.1  Binary protocol  http 2 is TLS only (browser)  Multiplex over single connection  Server push capability
  • 20. Demo
  • 21. Flow API reactive programming  Publisher  Subscriber  Subscription  Processor No implementation in jdk
  • 22. Demo
  • 23. smallthings  Collection factory methods  Private methods in Interfaces  Stream methods
  • 24. Demo
  • 25. Java doc  Improved search  No need to return to Google  HTML5 compliant  Java 9 doc
  • 26. Deprecated/Removed  Finalize()  Boxed primitive constructors  valueOf(int)  parseInt(String)  ‘_’ reserved keyword  Jhat  Launch-time JRE version selection  GC combinations
  • 27. Java 9 review Good  Platform more mature  Faster releases Bad  No long term support  more, More, MORE  not-platform specific  community  JAVA still OOP?  Unnecessary methods
  • 28. Java 10 ~ Project Valhalla  Incubator module like HTTP2  Value types  Generic specialization  Reified generics  Improved volatile support

Editor's Notes

  1. Exports: while this allow other modules to read everything in the package, all subpackage remain sealed. Exports to, is to share with specific modules but not with the rest Requires: we have a dependencie on another module (MODULE, not package) If we want to make it available to other modules by requiring our module: require transitive Provides, exponse an interface, but hide the implementation Uses used to indicate the service interface that this module is using; a type name, i.e., complete class/interface name, has to specified after this keyword Opens: is used to indicate the packages that are accessible only at runtime 
  2. They have to use the add-modules commandline options to request that an incubator module be resolved.
  3. Java always had dynamic linking. You can decrease the size of deployment with custom run-time image.
  4. defines link time as an optional phase between the phases of compile time (the javac command) and run-time (the java run-time launcher). Link time requires a linking tool that will assemble and optimize a set of modules and their transitive dependencies to create a run-time image or executable.
  5. /import shows all imports /vars show all variables /methods
  6. Concurrent multi threaded GC Offer more predictable pause times
  7. Is stop the world scenario still applicable The garbage in every region is tracked an the one with the most gabrage is cleared first
  8. More more more Client, jdbc, jpa Factory methods -> static, less constructors Java is getting overbloded with features, and it’s kind of ugly. But now matter how tangled, nasty and less OOP java gets. I iwll never switch to C#.