Demonstrates the features that will be available in Java 9. The links below take you to the demo in this project, the JEP responsible for introducing the feature, and to other sources if available.
This article list a lot of the upcoming changes:
- The Ultimate Guide to Java 9
- Inside Java 9 โ Version Schema, Multi-Release JARs, and More
- Inside Java 9 โ Performance, Compiler, and More
Putting everything here will take a while, so you have to be patient. If you can't, check out the JDK 9 page and look through the JEPs. You can read more from me on codefx.org and follow me on Twitter (and even G+, I guess).
The scripts are written for Linux but should look similar on other operating systems. They do need three symlinks, though:
java9
links tojava
in the JDK 9 installjavac9
links tojavac
in the JDK 9 installjar9
links tojar
in the JDK 9 install
The module system is too big to demo here. Check out the jigsaw and jpms tags on my blog or this demo project.
- private interface methods (JEP 213)
- try-with-resources on effectively final variables (JEP 213)
- diamond operator for anonymous classes (JEP 213)
@SaveVarargs
on private non-final methods (JEP 213)- no warnings for deprecated imports (JEP 211)
Stream
improvements (post on CodeFX)Optional
improvements (post on CodeFX)- OS processes (JEP 102)
- multi-resolution images (JEP 251)
- stack walking (JEP 259, post on SitePoint including benchmarks)
- platform logging (JEP 264)
- reactive streams (JEP 266)
- collection factory methods (instead of collection literals; JEP 269)
- platform-specific desktop features (not supported by my OS so my sample sucks; PRs welcome! JEP 272)
- deserialization filter (targeted for JDK 9 but not yet implemented; JEP 290)
- new version string schema (JEP 223)
- UTF-8 property files (JEP 226)
- reserved stack areas (JEP 270)
- DRGB implementations for
SecureRandom
(JEP 273) - string compaction (JEP 254)
- multi-release JARs: classes and the script (JEP 238)