Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The Good Cop/Bad Cop Guide to Java 9 [JavaOne`17]

The Good Cop/Bad Cop Guide to Java 9 [JavaOne`17]

The Java 9 release brings with it modularity, a new REPL, a new default garbage collector, an HTTP 2 client, multiversion JARs, API updates, and much more. This session looks at which features really benefit Java developers, with interactive demos. The two speakers take turns playing good cop/bad cop on each feature, and you can vote on which features are important to you. The energetic session cuts through the hype to outline how Java 9 will realistically affect the everyday pragmatic developer. You’ll learn what’s in the Java 9 release and how you can benefit from what’s new in Java.

Speakers:
Simon Maple,
Oleg Shelajev

Oleg Šelajev

October 04, 2017
Tweet

More Decks by Oleg Šelajev

Other Decks in Programming

Transcript

  1. GOOD COP /BAD COP
    GUIDE TO JAVA 9
    Oleg Šelajev | Simon Maple
    ZeroTurnaround
    [CON6076]

    View Slide

  2. OLEG SHELAJEV
    DEVELOPER ADVOCATE
    @SHELAJEV
    VIRTUAL JUG CO-LEADER
    TARTU GDG FOUNDER
    HEAD OF REBELLABS
    ABOUT US

    View Slide

  3. SIMON MAPLE
    DIRECTOR OF DEVREL
    @SJMAPLE
    VIRTUAL JUG FOUNDER
    LONDON JUG CO-LEADER
    JAVA CHAMPION
    JAVAONE ROCKSTAR
    DUKES CHOICE AWARD WINNER
    REBELLABS AUTHOR
    ABOUT US

    View Slide

  4. Good
    Cop
    Bad
    Cop

    View Slide

  5. @sjmaple @shelajev
    Modularity

    View Slide

  6. View Slide

  7. View Slide

  8. Enforcement

    View Slide

  9. View Slide

  10. UNSAFE!

    View Slide

  11. Java 9 Modules

    View Slide

  12. Java 9 Modules
    Smaller footprint
    Faster release cadence
    Features get to you sooner

    View Slide

  13. Modules
    Is there a problem they solve?
    What cannot they do?
    What is the cost?
    Did you actually have that problem?

    View Slide

  14. Java 9, the cooking guide
    1. Upgrade your staging environment
    2. Fix easily fixable warnings
    3. Wait till April 2018

    View Slide

  15. View Slide

  16. @sjmaple @shelajev
    Modularity Vote

    View Slide

  17. @shelajev @sjmaple
    Garbage Collection

    View Slide

  18. G1GC
    GC

    View Slide

  19. Generational GC

    View Slide

  20. G1GC

    View Slide

  21. G1GC
    -XX:MaxGCPauseMillis=200
    -XX:G1HeapWastePercent=10

    View Slide

  22. G1GC
    Introduced in an update of JDK 6
    Tested and supported in JDK 7
    Officially the default GC in JDK 9

    View Slide

  23. G1GC
    Faster memory management
    with fewer
    application code tricks

    View Slide

  24. G1GC
    Introduced in an update of JDK 6
    Tested and supported in JDK 7
    Officially the default GC in JDK 9

    View Slide

  25. -XX:UseG1GC
    G1GC

    View Slide

  26. @shelajev @sjmaple
    Garbage Collection Vote

    View Slide

  27. @sjmaple @shelajev
    JShell

    View Slide

  28. JShell
    Read
    Eval
    Print
    Loop

    View Slide

  29. JShell

    View Slide

  30. @sjmaple @shelajev
    JShell Vote

    View Slide

  31. @sjmaple @shelajev
    API Updates

    View Slide

  32. View Slide

  33. @sjmaple @shelajev
    API Updates Vote

    View Slide

  34. Multirelease JARs
    @shelajev @sjmaple

    View Slide

  35. View Slide

  36. Multirelease JARs

    View Slide

  37. Multirelease JARs Vote
    @shelajev @sjmaple

    View Slide

  38. View Slide

  39. JSON
    picture of a hipster

    View Slide

  40. View Slide

  41. Questions?

    View Slide

  42. View Slide