Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
—
Trisha Gee (@trisha_gee)
Developer & Technical Advocate, JetBrains
Real World Java
9
Real World Java 9
• Jigsaw in Action
• Reactive Programming in Java 9
• The Other Good Stuff
Why Java 9?
Free Lunch!
• Better Use of Memory
• Better Performance of:
• Locking
• Secure Apps
• Graphics
• Better Use of Hardware
• ...
Jigsaw
REPL
And… other things?
274: Enhanced Method Handles
275: Modular Java Application Packaging
276: Dynamic Linking of Language-Defined Object Model...
Caveats & Disclaimers
Java 9 in Production?
Everything is EA
The Case Study
Twitter Dashboard
http://bit.ly/Java8InAnger
Compiling with Java 9
Jigsaw
module-info.java
Pain
• Some structural reorganisation may be needed
• This project has no command-line build
• IDE support is not what we’...
• Cleaner design
• 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
Where to use it?
Reactive In Practice
Java 8 vs Reactive
• Work with multiple streams
• Have multiple consumers
• Backpressure
• Very different concurrency model
• Reactive API le...
Other Java 9 Features
269: Convenience Factory Methods for
Collections
213: Private Methods on Interfaces
New Methods on the Streams API
259: Stack-Walking API
238: Multi-Release JAR Files
102: Process API Updates
277: Updated Deprecation
224: HTML5 Javadoc
225: Javadoc search
JShell (REPL)
https://java.net/downloads/adoptopenjdk/
REPL_Tutorial.pdf
We’d Love Your Help
https://youtrack.jetbrains.com/issue/IDEA-
161611
The Pain
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 Ag...
• 158: Unified JVM Logging
• 223: New Version-String Scheme
• 245: Validate JVM Command-Line Flag Arguments
• 248: Make G1...
Java 9 is still evolving
So are the tools we use
Don’t rush in to modularisation
It might not be for you
Reactive Streams are not the same as
Java 8 Streams
Different behaviour, different use cases
The Gain
Encourages good design
Encourages new ways of working
Just a bit nicer to write code
http://bit.ly/RealJava9
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
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
Sie haben dieses Dokument abgeschlossen.
Lade die Datei herunter und lese sie offline.
Nächste SlideShare
What to Upload to SlideShare
Weiter
Nächste SlideShare
What to Upload to SlideShare
Weiter
Herunterladen, um offline zu lesen und im Vollbildmodus anzuzeigen.

4

Teilen

Real World Java 9

Herunterladen, um offline zu lesen

The latest version of the Java 9 talk, shown at GOTO Amsterdam and JBCN Conf

Ähnliche Bücher

Kostenlos mit einer 30-tägigen Testversion von Scribd

Alle anzeigen

Ähnliche Hörbücher

Kostenlos mit einer 30-tägigen Testversion von Scribd

Alle anzeigen

Real World Java 9

  1. 1. — Trisha Gee (@trisha_gee) Developer & Technical Advocate, JetBrains Real World Java 9
  2. 2. Real World Java 9 • Jigsaw in Action • Reactive Programming in Java 9 • The Other Good Stuff
  3. 3. Why Java 9?
  4. 4. 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
  5. 5. Jigsaw
  6. 6. REPL
  7. 7. And… other things?
  8. 8. 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
  9. 9. Caveats & Disclaimers
  10. 10. Java 9 in Production?
  11. 11. Everything is EA
  12. 12. The Case Study
  13. 13. Twitter Dashboard
  14. 14. http://bit.ly/Java8InAnger
  15. 15. Compiling with Java 9
  16. 16. Jigsaw
  17. 17. module-info.java
  18. 18. Pain • Some structural reorganisation may be needed • This project has no command-line build • IDE support is not what we’re used to • RTFM. No, really do.
  19. 19. • Cleaner design • Smaller deployables Gain
  20. 20. Reactive API
  21. 21. Reactive Streams API
  22. 22. • Akka Streams • MongoDB Reactive Java Driver • Ratpack • Reactive Rabbit • Reactor • RxJava • Vert.x Implementations
  23. 23. Java 9 Flow API
  24. 24. Where to use it?
  25. 25. Reactive In Practice
  26. 26. Java 8 vs Reactive
  27. 27. • Work with multiple streams • Have multiple consumers • Backpressure • Very different concurrency model • Reactive API lets you work with different implementations Reactive
  28. 28. Other Java 9 Features
  29. 29. 269: Convenience Factory Methods for Collections
  30. 30. 213: Private Methods on Interfaces
  31. 31. New Methods on the Streams API
  32. 32. 259: Stack-Walking API
  33. 33. 238: Multi-Release JAR Files
  34. 34. 102: Process API Updates
  35. 35. 277: Updated Deprecation
  36. 36. 224: HTML5 Javadoc
  37. 37. 225: Javadoc search
  38. 38. JShell (REPL)
  39. 39. https://java.net/downloads/adoptopenjdk/ REPL_Tutorial.pdf
  40. 40. We’d Love Your Help https://youtrack.jetbrains.com/issue/IDEA- 161611
  41. 41. The Pain
  42. 42. Your code might break! Try it out now to find out sooner, not later
  43. 43. • 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
  44. 44. • 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
  45. 45. Java 9 is still evolving So are the tools we use
  46. 46. Don’t rush in to modularisation It might not be for you
  47. 47. Reactive Streams are not the same as Java 8 Streams Different behaviour, different use cases
  48. 48. The Gain
  49. 49. Encourages good design
  50. 50. Encourages new ways of working
  51. 51. Just a bit nicer to write code
  52. 52. http://bit.ly/RealJava9
  • bewpleng

    Oct. 9, 2017
  • zhangya_no1

    Sep. 26, 2017
  • WanatchapongManotham

    Sep. 16, 2017
  • ashraful_bd_sust

    Aug. 21, 2017

The latest version of the Java 9 talk, shown at GOTO Amsterdam and JBCN Conf

Aufrufe

Aufrufe insgesamt

2.064

Auf Slideshare

0

Aus Einbettungen

0

Anzahl der Einbettungen

1.600

Befehle

Downloads

23

Geteilt

0

Kommentare

0

Likes

4

×