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

Life Beyond Java 8

Trisha Gee
December 03, 2020

Life Beyond Java 8

Wasn’t Java 8 a fantastic update to the language? Lambdas and streams were a huge change and have helped to improve Java developers’ productivity and introduce some functional ideas to the language. Then came Java 9... and although the module system is really interesting for certain types of applications, the lack of exciting language features and uncertainty around how painful it might be to migrate to Java 9 left many applications taking a wait-and-see approach, happy with Java 8.

But now Java has a new version every six months, and suddenly Java 15 is here. We’re all still on Java 8, wondering
whether we should move to a later version, which one to choose, and how painful it might be to upgrade.

In this session we’ll look at:

- Why upgrade from Java 8, including language features from Java 9-15
- What sorts of issues might we run into if we do choose to upgrade
- How the support and license changes that came in with Java 11 might impact us.

Trisha Gee

December 03, 2020

More Decks by Trisha Gee

Other Decks in Programming


  1. IntelliJ IDEA ©JetBrains. All rights reserved Life Beyond Java 8

    Trisha Gee (@trisha_gee) Java Developer Advocacy Lead, JetBrains
  2. https://blog.jetbrains.com/idea/2020/09/a-picture-of-java-in-2020/ Java 8 remains the most popular version. It is

    used by 75% of professional developers who use Java as their primary language.
  3. var

  4. New Methods on Stream API items.stream() .takeWhile(user !-> user.count() <

    maxCount) .forEach(user !-> position.incrementAndGet());
  5. • JEP 302: Lambda Leftovers (including underscore for param) •

    JEP 360: Sealed Types (Preview) • JEP draft: Pattern matching for switch (Preview) • Project Amber • Valhalla • Loom • Lots of Garbage Collection improvements Java 16
  6. • Project Amber • Valhalla • Loom • More Garbage

    Collection improvements • Proposed New Project: Leyden And in the future?
  7. • Java 9: JEP 248: G1 the Default GC •

    Java 10: JEP 307: Parallel Full GC for G1 • Java 11: JEP 318: Epsilon (Experimental) • Java 11: JEP 333: ZGC (Experimental) Garbage Collection (Java 11)
  8. • Java 12: More Updates to G1 • Java 14:

    Deprecate the ParallelScavenge + SerialOld GC Combination • Java 15: ZGC (Production) • Java 15: Shenandoah (Production) Garbage Collection (Java 15)
  9. There are two upgrade options To Java 11 (LTS) or

    to Java 15 (upgrade every 6 months)