How is Java 9 going to change the way developers work?
The feature we always hear about whenever Java 9 is in the news is Jigsaw, modularity. But this doesn’t scratch the same developer itch that Java 8’s lambdas and streams did, and we’re left with a vague sensation that the next version might not be that interesting.
Java 9 actually has a lot of great additions and changes to make development a bit nicer. These features can’t be lumped under an umbrella term like Java 8’s lambdas and streams, the changes are scattered throughout the APIs and language features that we regularly use.
In this presentation Trisha will show, via live coding:
- How we can use the new Flow API to utilise Reactive Programming
- How the improvements to the Streams API make it easier to control real-time streaming data
- How to the Collections convenience methods simplify code
Along the way we’ll bump into other Java 9 features, including some of the additions to interfaces and changes to deprecation. We’ll see that once you start using Java 9, you can’t go back to Before.
The code for this presentation was originally created to demonstrate Java 8 code in Java 8 in Anger, take a look at the videos there to see more background on the application and how it used Java 8 Streams and Lambda Expressions for the core business logic. The code and the presentation evolved to include some Java 9 features.
I have another Java 9 talk based off this code, Anticipating Java 9 - Functionality and Tooling, which demos more individual Java 9 features and talks specifically about IntelliJ IDEA’s support for it.
- https://github.com/trishagee/sense-nine. The full application with all Java 9 code is currently under the working-system branch.
- Original Java 8 code comes from https://github.com/trishagee/sense, the master branch has the most up-to-date final working Java 8 application. JUnit 5 tests come from the junit-5 branch. Java 8 and 9 features live side-by-side in yow-brisbane. That app was built with Java build 9-ea+146, but does not work with build 9-ea+156
- JDK 9 Project Page
- Download JDK 9 EA
- What is cool in Java 8 and new in 9(Slides: Java 9 content starts at Slide 40)
- The Ultimate Guide to Java 9
- Inside Java 9 – Version Schema, Multi-Release JARs, and More
- Inside Java 9 – Performance, Compiler, and More
- Java Platform Standard Edition 9 Early Access Documentation
- Java 9 Javadoc (note the new search feature!)
- Project Jigsaw
- Quick Start Tutorial
- The State of the Module System
- Project Jigsaw: The module system
- Programming with Modularity and Project Jigsaw. A Tutorial Using the Latest Early Access Build
- First steps with Java 9 and Project Jigsaw – Part 1
- First steps with Java 9 and Project Jigsaw – Part 2
- Jdeps Tool
Reactive Programming and RxJava
- Reactive Programming with JDK 9 Flow API
- RxJava Documentation
- RXJava2 by Example
- RxJava 2.0 - Tutorial
- RxJava for easy concurrency and backpressure
- Multicasting in RxJava
- Reactive Streams, j.u.concurrent, & beyond! (video)
- Understanding Reactive Types
- Reactive Streams: Handling Data-Flow the Reactive Way(slides)