Java 9 Functionality and Tooling
-
Upload
trisha-gee -
Category
Technology
-
view
549 -
download
0
Transcript of Java 9 Functionality and Tooling
![Page 1: Java 9 Functionality and Tooling](https://reader035.fdocuments.us/reader035/viewer/2022062503/5872e6451a28abfa548b6105/html5/thumbnails/1.jpg)
—
Trisha Gee (@trisha_gee)Developer & Technical Advocate, JetBrains
Java 9 in Anticipation: Features and Tooling
![Page 2: Java 9 Functionality and Tooling](https://reader035.fdocuments.us/reader035/viewer/2022062503/5872e6451a28abfa548b6105/html5/thumbnails/2.jpg)
Safe Harbour
Blah blah, don’t rely on anything I’m saying, I’m not committing to anything, estimates are hard, things change, this is just what’s in our head right now, no promises. OK? kthxbai
![Page 3: Java 9 Functionality and Tooling](https://reader035.fdocuments.us/reader035/viewer/2022062503/5872e6451a28abfa548b6105/html5/thumbnails/3.jpg)
Java 9
![Page 4: Java 9 Functionality and Tooling](https://reader035.fdocuments.us/reader035/viewer/2022062503/5872e6451a28abfa548b6105/html5/thumbnails/4.jpg)
Jigsaw, yay!
![Page 5: Java 9 Functionality and Tooling](https://reader035.fdocuments.us/reader035/viewer/2022062503/5872e6451a28abfa548b6105/html5/thumbnails/5.jpg)
But it might break everything…
![Page 6: Java 9 Functionality and Tooling](https://reader035.fdocuments.us/reader035/viewer/2022062503/5872e6451a28abfa548b6105/html5/thumbnails/6.jpg)
…and I don’t need it anyway.
![Page 7: Java 9 Functionality and Tooling](https://reader035.fdocuments.us/reader035/viewer/2022062503/5872e6451a28abfa548b6105/html5/thumbnails/7.jpg)
So, thanks but no thanks. I’ll wait for Value Types.
![Page 8: Java 9 Functionality and Tooling](https://reader035.fdocuments.us/reader035/viewer/2022062503/5872e6451a28abfa548b6105/html5/thumbnails/8.jpg)
Java 9 is so much more than Jigsaw
![Page 9: Java 9 Functionality and Tooling](https://reader035.fdocuments.us/reader035/viewer/2022062503/5872e6451a28abfa548b6105/html5/thumbnails/9.jpg)
102: Process API Updates110: HTTP 2 Client143: Improve Contended Locking158: Unified JVM Logging165: Compiler Control193: Variable Handles197: Segmented Code Cache199: Smart Java Compilation, Phase Two200: The Modular JDK201: Modular Source Code211: Elide Deprecation Warnings on Import Statements212: Resolve Lint and Doclint Warnings213: Milling Project Coin214: Remove GC Combinations Deprecated in JDK 8215: Tiered Attribution for javac216: Process Import Statements Correctly217: Annotations Pipeline 2.0219: Datagram Transport Layer Security (DTLS)220: Modular Run-Time Images221: Simplified Doclet API222: jshell: The Java Shell (Read-Eval-Print Loop)223: New Version-String Scheme224: HTML5 Javadoc225: Javadoc Search226: UTF-8 Property Files227: Unicode 7.0228: Add More Diagnostic Commands229: Create PKCS12 Keystores by Default231: Remove Launch-Time JRE Version Selection232: Improve Secure Application Performance233: Generate Run-Time Compiler Tests Automatically235: Test Class-File Attributes Generated by javac236: Parser API for Nashorn237: Linux/AArch64 Port238: Multi-Release JAR Files240: Remove the JVM TI hprof Agent241: Remove the jhat Tool243: Java-Level JVM Compiler Interface244: TLS Application-Layer Protocol Negotiation Extension245: Validate JVM Command-Line Flag Arguments246: Leverage CPU Instructions for GHASH and RSA247: Compile for Older Platform Versions248: Make G1 the Default Garbage Collector249: OCSP Stapling for TLS250: Store Interned Strings in CDS Archives251: Multi-Resolution Images252: Use CLDR Locale Data by Default253: Prepare JavaFX UI Controls & CSS APIs for Modularization254: Compact Strings255: Merge Selected Xerces 2.11.0 Updates into JAXP256: BeanInfo Annotations257: Update JavaFX/Media to Newer Version of GStreamer258: HarfBuzz Font-Layout Engine259: Stack-Walking API260: Encapsulate Most Internal APIs261: Module System262: TIFF Image I/O263: HiDPI Graphics on Windows and Linux264: Platform Logging API and Service265: Marlin Graphics Renderer266: More Concurrency Updates267: Unicode 8.0268: XML Catalogs269: Convenience Factory Methods for Collections270: Reserved Stack Areas for Critical Sections271: Unified GC Logging272: Platform-Specific Desktop Features273: DRBG-Based SecureRandom Implementations274: Enhanced Method Handles275: Modular Java Application Packaging276: Dynamic Linking of Language-Defined Object Models277: Enhanced Deprecation278: Additional Tests for Humongous Objects in G1279: Improve Test-Failure Troubleshooting280: Indify String Concatenation281: HotSpot C++ Unit-Test Framework282: jlink: The Java Linker283: Enable GTK 3 on Linux284: New HotSpot Build System285: Spin-Wait Hints287: SHA-3 Hash Algorithms288: Disable SHA-1 Certificates289: Deprecate the Applet API290: Filter Incoming Serialization Data292: Implement Selected ECMAScript 6 Features in Nashorn294: Linux/s390x Port295: Ahead-of-Time Compilation297: Unified arm32/arm64 Port298: Remove Demos and Samples
![Page 10: Java 9 Functionality and Tooling](https://reader035.fdocuments.us/reader035/viewer/2022062503/5872e6451a28abfa548b6105/html5/thumbnails/10.jpg)
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
![Page 11: Java 9 Functionality and Tooling](https://reader035.fdocuments.us/reader035/viewer/2022062503/5872e6451a28abfa548b6105/html5/thumbnails/11.jpg)
Compiling with Java 9
![Page 12: Java 9 Functionality and Tooling](https://reader035.fdocuments.us/reader035/viewer/2022062503/5872e6451a28abfa548b6105/html5/thumbnails/12.jpg)
![Page 13: Java 9 Functionality and Tooling](https://reader035.fdocuments.us/reader035/viewer/2022062503/5872e6451a28abfa548b6105/html5/thumbnails/13.jpg)
https://wiki.openjdk.java.net/display/Adoption/JDK+9+Outreach
![Page 14: Java 9 Functionality and Tooling](https://reader035.fdocuments.us/reader035/viewer/2022062503/5872e6451a28abfa548b6105/html5/thumbnails/14.jpg)
Your code might break!Try it out now to find out sooner, not later
![Page 15: Java 9 Functionality and Tooling](https://reader035.fdocuments.us/reader035/viewer/2022062503/5872e6451a28abfa548b6105/html5/thumbnails/15.jpg)
• 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
![Page 16: Java 9 Functionality and Tooling](https://reader035.fdocuments.us/reader035/viewer/2022062503/5872e6451a28abfa548b6105/html5/thumbnails/16.jpg)
• 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
![Page 17: Java 9 Functionality and Tooling](https://reader035.fdocuments.us/reader035/viewer/2022062503/5872e6451a28abfa548b6105/html5/thumbnails/17.jpg)
Jigsaw
![Page 18: Java 9 Functionality and Tooling](https://reader035.fdocuments.us/reader035/viewer/2022062503/5872e6451a28abfa548b6105/html5/thumbnails/18.jpg)
• Generation of module-info.java• Syntax support for module-info.java• Code completion in module-info.java• Compilation of multi-module projects• Quick fixes to add requires statements
IntelliJ IDEA 2017.1
![Page 19: Java 9 Functionality and Tooling](https://reader035.fdocuments.us/reader035/viewer/2022062503/5872e6451a28abfa548b6105/html5/thumbnails/19.jpg)
• Automatic generation of module-info.java• IntelliJ IDEA module structure recognised on
import• JLink artifacts
IntelliJ IDEA 2017.?
![Page 20: Java 9 Functionality and Tooling](https://reader035.fdocuments.us/reader035/viewer/2022062503/5872e6451a28abfa548b6105/html5/thumbnails/20.jpg)
We’d Love Your Helphttps://youtrack.jetbrains.com/issue/IDEA-154240
![Page 21: Java 9 Functionality and Tooling](https://reader035.fdocuments.us/reader035/viewer/2022062503/5872e6451a28abfa548b6105/html5/thumbnails/21.jpg)
Easy to Use Features
![Page 22: Java 9 Functionality and Tooling](https://reader035.fdocuments.us/reader035/viewer/2022062503/5872e6451a28abfa548b6105/html5/thumbnails/22.jpg)
New Methods on the Streams API
![Page 23: Java 9 Functionality and Tooling](https://reader035.fdocuments.us/reader035/viewer/2022062503/5872e6451a28abfa548b6105/html5/thumbnails/23.jpg)
269: Convenience Factory Methods for Collections
![Page 24: Java 9 Functionality and Tooling](https://reader035.fdocuments.us/reader035/viewer/2022062503/5872e6451a28abfa548b6105/html5/thumbnails/24.jpg)
213: Milling Project CoinPrivate Methods on Interfaces
![Page 25: Java 9 Functionality and Tooling](https://reader035.fdocuments.us/reader035/viewer/2022062503/5872e6451a28abfa548b6105/html5/thumbnails/25.jpg)
277: Updated Deprecation
![Page 26: Java 9 Functionality and Tooling](https://reader035.fdocuments.us/reader035/viewer/2022062503/5872e6451a28abfa548b6105/html5/thumbnails/26.jpg)
102: Process API Updates
![Page 27: Java 9 Functionality and Tooling](https://reader035.fdocuments.us/reader035/viewer/2022062503/5872e6451a28abfa548b6105/html5/thumbnails/27.jpg)
266: More Concurrency Updates
![Page 28: Java 9 Functionality and Tooling](https://reader035.fdocuments.us/reader035/viewer/2022062503/5872e6451a28abfa548b6105/html5/thumbnails/28.jpg)
JShell (repl)
![Page 29: Java 9 Functionality and Tooling](https://reader035.fdocuments.us/reader035/viewer/2022062503/5872e6451a28abfa548b6105/html5/thumbnails/29.jpg)
https://java.net/downloads/adoptopenjdk/REPL_Tutorial.pdf
![Page 30: Java 9 Functionality and Tooling](https://reader035.fdocuments.us/reader035/viewer/2022062503/5872e6451a28abfa548b6105/html5/thumbnails/30.jpg)
We’d Love Your Helphttps://youtrack.jetbrains.com/issue/IDEA-161611
![Page 31: Java 9 Functionality and Tooling](https://reader035.fdocuments.us/reader035/viewer/2022062503/5872e6451a28abfa548b6105/html5/thumbnails/31.jpg)
Interesting Tidbits
![Page 32: Java 9 Functionality and Tooling](https://reader035.fdocuments.us/reader035/viewer/2022062503/5872e6451a28abfa548b6105/html5/thumbnails/32.jpg)
263: HiDPI graphics on Windows
![Page 33: Java 9 Functionality and Tooling](https://reader035.fdocuments.us/reader035/viewer/2022062503/5872e6451a28abfa548b6105/html5/thumbnails/33.jpg)
224: HTML5 Javadoc
![Page 34: Java 9 Functionality and Tooling](https://reader035.fdocuments.us/reader035/viewer/2022062503/5872e6451a28abfa548b6105/html5/thumbnails/34.jpg)
225: Javadoc search
![Page 35: Java 9 Functionality and Tooling](https://reader035.fdocuments.us/reader035/viewer/2022062503/5872e6451a28abfa548b6105/html5/thumbnails/35.jpg)
248: Default Garbage Collector is now G1
![Page 36: Java 9 Functionality and Tooling](https://reader035.fdocuments.us/reader035/viewer/2022062503/5872e6451a28abfa548b6105/html5/thumbnails/36.jpg)
In Summary
![Page 37: Java 9 Functionality and Tooling](https://reader035.fdocuments.us/reader035/viewer/2022062503/5872e6451a28abfa548b6105/html5/thumbnails/37.jpg)
Java 9 is more than Jigsaw
![Page 38: Java 9 Functionality and Tooling](https://reader035.fdocuments.us/reader035/viewer/2022062503/5872e6451a28abfa548b6105/html5/thumbnails/38.jpg)
There’s quite a lot to gain
![Page 39: Java 9 Functionality and Tooling](https://reader035.fdocuments.us/reader035/viewer/2022062503/5872e6451a28abfa548b6105/html5/thumbnails/39.jpg)
Better to find the pain sooner than later
![Page 40: Java 9 Functionality and Tooling](https://reader035.fdocuments.us/reader035/viewer/2022062503/5872e6451a28abfa548b6105/html5/thumbnails/40.jpg)
http://bit.ly/j9IntelliJ
@trisha_gee