SlideShare a Scribd company logo
—
Trisha Gee (@trisha_gee)
Developer & Technical Advocate, JetBrains
Real World
Java 9
Real World Java 9
Real World Java 9
• Jigsaw in Action
Real World Java 9
• Jigsaw in Action
• The Reactive API in Java 9
Real World Java 9
• Jigsaw in Action
• The Reactive API in Java 9
• Everything Else
Why Java 9?
Free Lunch!
• Better Use of Memory
• Better Performance of:
• Locking
• Secure Apps
• Graphics
• Better Use of Hardware
• Better Documentation
• Prettier Graphics (Windows and Linux)
• Faster Compilation
Jigsaw
REPL
And… other things?
Real World Java 9
274: Enhanced Method Handles
275: Modular Java Application Packaging
276: Dynamic Linking of Language-Defined Object Models
277: Enhanced Deprecation
278: Additional Tests for Humongous Objects in G1
279: Improve Test-Failure Troubleshooting
280: Indify String Concatenation
281: HotSpot C++ Unit-Test Framework
282: jlink: The Java Linker
283: Enable GTK 3 on Linux
284: New HotSpot Build System
285: Spin-Wait Hints
287: SHA-3 Hash Algorithms
288: Disable SHA-1 Certificates
289: Deprecate the Applet API
290: Filter Incoming Serialization Data
292: Implement Selected ECMAScript 6 Features in Nashorn
294: Linux/s390x Port
295: Ahead-of-Time Compilation
297: Unified arm32/arm64 Port
298: Remove Demos and Samples
The Case Study
Twitter Dashboard
Real World Java 9
http://bit.ly/Java8InAnger
Compiling with Java 9
Jigsaw
• JEP	200: The Modular JDK
• JEP	201: Modular Source Code
• JEP	220: Modular Run-Time Images
• JEP	260: Encapsulate Most Internal APIs
• JEP	261: Module System
• JEP	282: jlink: The Java Linker
• JSR	376: Java Platform Module System
Project Jigsaw
Java Platform Module
System (JPMS)
Real World Java 9
Real World Java 9
Real World Java 9
Real World Java 9
Real World Java 9
Real World Java 9
Real World Java 9
Real World Java 9
Real World Java 9
Real World Java 9
Real World Java 9
module-info.java
Pain
Pain
• Some structural reorganisation may be
needed
Pain
• Some structural reorganisation may be
needed
• IDE support is not what we’re used to
Pain
• Some structural reorganisation may be
needed
• IDE support is not what we’re used to
• RTFM. No, really do.
Gain
• Cleaner design
Gain
• Cleaner design
• Reliable configuration
Gain
• Cleaner design
• Reliable configuration
• Smaller deployables
Gain
Reactive API
Reactive Streams API
• Akka Streams
• MongoDB Reactive Java Driver
• Ratpack
• Reactive Rabbit 
• Reactor 
• RxJava
• Vert.x 
Implementations
Java 9 Flow API
Real World Java 9
Other Java 9 Features
269: Convenience Factory Methods
for Collections
213: Private Methods on Interfaces
New Methods on the Streams API
New Methods on Optional
259: Stack-Walking API
102: Process API Updates
238: Multi-Release JAR Files
277: Updated Deprecation
224: HTML5 Javadoc
225: Javadoc search
Real World Java 9
Real World Java 9
JShell (REPL)
https://docs.oracle.com/javase/9/
jshell/introduction-jshell.htm
We’d Love Your Help
We’d Love Your Help
https://youtrack.jetbrains.com/issue/
IDEA-161611
The Pain
Your code might break!
Your code might break!
Try it out now to find out sooner, not
later
• 214: Remove Deprecated GC Combinations
• 231: Remove Launch-Time JRE Version Selection
• 240: Remove the JVM TI hprof Agent
• 241: Remove the jhat Tool
• 260: Encapsulate Most Internal APIs
• 289: Deprecate the Applet API
• 298: Remove Demos and Samples
Going Away
• 158: Unified JVM Logging
• 223: New Version-String Scheme
• 245: Validate JVM Command-Line Flag Arguments
• 248: Make G1 the Default Garbage Collector
• 271: Unified GC Logging
Possible Unexpected Behaviour
Tools are still evolving
Tools are still evolving
…another reason to try it early
Don’t rush in to modularisation
Don’t rush in to modularisation
It might not be for you
The Gain
Encourages good design
Encourages new ways of working
Just a bit nicer to write code
…and you’ll be ready for Java 10
Or 18.3…
http://bit.ly/RealJava9

More Related Content

PPTX
Real World Java 9 - JetBrains Webinar
PDF
Development with JavaFX 9 in JDK 9.0.1
PPTX
The do's and don'ts with java 9 (Devoxx 2017)
PPTX
Real World Java 9
PPTX
Java 9 Functionality and Tooling
PPTX
Real World Java 9
PDF
Real World Java 9 (QCon London)
PDF
Java 8 and 9 in Anger
Real World Java 9 - JetBrains Webinar
Development with JavaFX 9 in JDK 9.0.1
The do's and don'ts with java 9 (Devoxx 2017)
Real World Java 9
Java 9 Functionality and Tooling
Real World Java 9
Real World Java 9 (QCon London)
Java 8 and 9 in Anger

What's hot (20)

PPTX
Discuss about java 9 with latest features
PDF
Real World Java 9
PPSX
Java 9 and the impact on Maven Projects (ApacheCon Europe 2016)
PPT
Monitoring and Tuning GlassFish
PPTX
Why jakarta ee matters (ConFoo 2021)
PPTX
Faster java ee builds with gradle [con4921]
PDF
Apache DeltaSpike the CDI toolbox
PDF
Java 9 Modularity in Action
PDF
Apache Lucene for Java EE Developers
PPTX
Node.js Development with Apache NetBeans
PPTX
Preparing for java 9 modules upload
PDF
Play vs Grails Smackdown - Devoxx France 2013
PDF
Microservices and modularity with java
PDF
Cloud Foundry Open Tour India 2012 , Keynote
PDF
Scala play-framework
PDF
Modular Java applications with OSGi on Apache Karaf
PPTX
Why Play Framework is fast
PDF
Spring Boot to Quarkus: A real app migration experience | DevNation Tech Talk
PDF
Javantura v4 - JVM++ The GraalVM - Martin Toshev
PDF
The Making of the Oracle R2DBC Driver and How to Take Your Code from Synchron...
Discuss about java 9 with latest features
Real World Java 9
Java 9 and the impact on Maven Projects (ApacheCon Europe 2016)
Monitoring and Tuning GlassFish
Why jakarta ee matters (ConFoo 2021)
Faster java ee builds with gradle [con4921]
Apache DeltaSpike the CDI toolbox
Java 9 Modularity in Action
Apache Lucene for Java EE Developers
Node.js Development with Apache NetBeans
Preparing for java 9 modules upload
Play vs Grails Smackdown - Devoxx France 2013
Microservices and modularity with java
Cloud Foundry Open Tour India 2012 , Keynote
Scala play-framework
Modular Java applications with OSGi on Apache Karaf
Why Play Framework is fast
Spring Boot to Quarkus: A real app migration experience | DevNation Tech Talk
Javantura v4 - JVM++ The GraalVM - Martin Toshev
The Making of the Oracle R2DBC Driver and How to Take Your Code from Synchron...
Ad

Viewers also liked (20)

PDF
Migrating to Java 9 Modules
PDF
Desiging for Modularity with Java 9
PDF
Modules or microservices?
PPTX
Becoming fully buzzword compliant
PDF
Live Demo from JavaOne
PDF
Refactoring to Java 8 (QCon New York)
PDF
2015 Java update and roadmap, JUG sevilla
PPTX
Career Advice for Programmers
KEY
Lock? We don't need no stinkin' locks!
PDF
Staying Ahead of the Curve
PDF
Staying Ahead of the Curve
PPTX
Lambda Expressions in Java 8
PDF
Java SE 9 modules (JPMS) - an introduction
PDF
Java9 Beyond Modularity - Java 9 más allá de la modularidad
PPT
Java 8 Streams
PDF
Java 8 Stream API. A different way to process collections.
PPTX
Java 9 Modules: The Duke Yet Lives That OSGi Shall Depose
PDF
Java 9, JShell, and Modularity
PDF
Lambda Expressions in Java
PDF
Working With Concurrency In Java 8
Migrating to Java 9 Modules
Desiging for Modularity with Java 9
Modules or microservices?
Becoming fully buzzword compliant
Live Demo from JavaOne
Refactoring to Java 8 (QCon New York)
2015 Java update and roadmap, JUG sevilla
Career Advice for Programmers
Lock? We don't need no stinkin' locks!
Staying Ahead of the Curve
Staying Ahead of the Curve
Lambda Expressions in Java 8
Java SE 9 modules (JPMS) - an introduction
Java9 Beyond Modularity - Java 9 más allá de la modularidad
Java 8 Streams
Java 8 Stream API. A different way to process collections.
Java 9 Modules: The Duke Yet Lives That OSGi Shall Depose
Java 9, JShell, and Modularity
Lambda Expressions in Java
Working With Concurrency In Java 8
Ad

Similar to Real World Java 9 (20)

PPTX
An introduction to Java 9 & Its Features
PDF
Java 9 and Beyond
PPTX
Java 9 sneak peek
PDF
Haj 4344-java se 9 and the application server-1
PDF
A Journey through the JDKs (Java 9 to Java 11)
PDF
How can your applications benefit from Java 9?
PDF
What's new in java 9?
PDF
PPTX
What’s expected in Java 9
PDF
Java 9-10 What's New
PDF
How can your applications benefit from Java 9?
PDF
JavaOne 2016: Life after Modularity
PPT
Features java9
PPTX
Java 9 Module System Introduction
PDF
Java 9 / Jigsaw - LJC / VJUG session (hackday session)
PPTX
Java 9: Deep Dive into Modularity and Dealing with Migration Issues
PDF
What's New in Java 9 KCDC
PPTX
Java 9 features
PDF
The Diabolical Developer's Guide to Surviving Java 9
ODP
Java 9 Features
An introduction to Java 9 & Its Features
Java 9 and Beyond
Java 9 sneak peek
Haj 4344-java se 9 and the application server-1
A Journey through the JDKs (Java 9 to Java 11)
How can your applications benefit from Java 9?
What's new in java 9?
What’s expected in Java 9
Java 9-10 What's New
How can your applications benefit from Java 9?
JavaOne 2016: Life after Modularity
Features java9
Java 9 Module System Introduction
Java 9 / Jigsaw - LJC / VJUG session (hackday session)
Java 9: Deep Dive into Modularity and Dealing with Migration Issues
What's New in Java 9 KCDC
Java 9 features
The Diabolical Developer's Guide to Surviving Java 9
Java 9 Features

More from Trisha Gee (18)

PPTX
Career Advice for Architects
PPTX
Is boilerplate code really so bad?
PPTX
Code Review Best Practices
PDF
Career Advice for Programmers - ProgNET London
PDF
Is Boilerplate Code Really So Bad?
PDF
Refactoring to Java 8 (Devoxx BE)
PDF
Code Review Matters and Manners
PDF
Refactoring to Java 8 (Devoxx UK)
PPTX
Level Up Your Automated Tests
PDF
Java 8 in Anger (JavaOne)
PPTX
Staying Ahead of the Curve
PDF
Level Up Your Automated Tests
PDF
Java 8 in Anger, Devoxx France
PPTX
Is Groovy better for testing than Java?
PPTX
Speaker Clinic (Novice Speakers)
PDF
Java 8 in Anger (QCon London)
PDF
Working in Open Source
PDF
Building a web application with MongoDB & Java
Career Advice for Architects
Is boilerplate code really so bad?
Code Review Best Practices
Career Advice for Programmers - ProgNET London
Is Boilerplate Code Really So Bad?
Refactoring to Java 8 (Devoxx BE)
Code Review Matters and Manners
Refactoring to Java 8 (Devoxx UK)
Level Up Your Automated Tests
Java 8 in Anger (JavaOne)
Staying Ahead of the Curve
Level Up Your Automated Tests
Java 8 in Anger, Devoxx France
Is Groovy better for testing than Java?
Speaker Clinic (Novice Speakers)
Java 8 in Anger (QCon London)
Working in Open Source
Building a web application with MongoDB & Java

Recently uploaded (20)

PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
KodekX | Application Modernization Development
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
A Presentation on Artificial Intelligence
PDF
Empathic Computing: Creating Shared Understanding
PPTX
Cloud computing and distributed systems.
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Unlocking AI with Model Context Protocol (MCP)
Mobile App Security Testing_ A Comprehensive Guide.pdf
The AUB Centre for AI in Media Proposal.docx
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
KodekX | Application Modernization Development
Reach Out and Touch Someone: Haptics and Empathic Computing
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Network Security Unit 5.pdf for BCA BBA.
Agricultural_Statistics_at_a_Glance_2022_0.pdf
A Presentation on Artificial Intelligence
Empathic Computing: Creating Shared Understanding
Cloud computing and distributed systems.
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Encapsulation_ Review paper, used for researhc scholars
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Dropbox Q2 2025 Financial Results & Investor Presentation
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Digital-Transformation-Roadmap-for-Companies.pptx
Unlocking AI with Model Context Protocol (MCP)

Real World Java 9