SLIDE 1
Upgrading Past Java 9 Sounds Scary and I dont want to pay for Java - - PowerPoint PPT Presentation
Upgrading Past Java 9 Sounds Scary and I dont want to pay for Java - - PowerPoint PPT Presentation
Upgrading Past Java 9 Sounds Scary and I dont want to pay for Java Super happy with Java 8, Super happy with Java 8, thanks thanks Starting with Java 11, Oracle will provide JDK releases under the open source GNU General Public License
SLIDE 2
SLIDE 3
Super happy with Java 8, Super happy with Java 8, thanks thanks
SLIDE 4
SLIDE 5
SLIDE 6
SLIDE 7
SLIDE 8
SLIDE 9
SLIDE 10
SLIDE 11
SLIDE 12
Starting with Java 11, Oracle will provide JDK releases under the open source GNU General Public License v2, with the Classpath Exception (GPLv2+CPE), and under a commercial license for those using the Oracle JDK as part of an Oracle product or service, or who do not wish to use open source software. This… replaces the historical “BCL” license, which had a combination of free and paid commercial terms.
Donald Smith, Sr. Director of Product Management (June 2018)
https://blogs.oracle.com/java-platform-group/oracle-jdk-releases- for-java-11-and-later
SLIDE 13
That sounds frightening, and overly
- complicated. Talk us through it.
The Lego Batman Movie
SLIDE 14
That sounds frightening, and overly
- complicated. Talk us through it.
The Lego Batman Movie
SLIDE 15
https://flic.kr/p/8xhk74
SLIDE 16
From Java 11 forward, Oracle JDK builds and OpenJDK builds will be essentially identical.
Donald Smith, Sr. Director of Product Management (Sept 2018)
https://blogs.oracle.com/java-platform-group/oracle-jdk-releases- for-java-11-and-later
SLIDE 17
https://blog.joda.org/2018/09/time-to-look-beyond-oracles-jdk.html
SLIDE 18
SLIDE 19
SLIDE 20
https://adoptopenjdk.net
SLIDE 21
https://adoptopenjdk.net/support.html
SLIDE 22
SLIDE 23
Language features Language features
SLIDE 24
JShell
SLIDE 25
JShell
SLIDE 26
JShell
SLIDE 27
var
SLIDE 28
var
SLIDE 29
var
SLIDE 30
var
SLIDE 31
var
SLIDE 32
var
SLIDE 33
Convenience Factory Methods for Collections
SLIDE 34
Convenience Factory Methods for Collections
SLIDE 35
Convenience Factory Methods for Collections
SLIDE 36
Convenience Factory Methods for Collections
SLIDE 37
Collecting to Unmodifable Collections
items.stream() .filter(Objects::nonNull) .map(Object::toString) .collect(Collectors.toUnmodifiableList());
SLIDE 38
New Methods on Stream API
items.stream() .takeWhile(user -> user.count() < maxCount) .forEach(user -> position.incrementAndGet());
SLIDE 39
Predicate.not()
SLIDE 40
New Methods on Optional
SLIDE 41
Http Client
@tddmonkey
SLIDE 42
Multi Release Jar Files
SLIDE 43
Jigsaw
SLIDE 44
Java Module System
SLIDE 45
Java Module System
SLIDE 46
JLink
SLIDE 47
And in the future?
SLIDE 48
Java 12: Switch expressions
SLIDE 49
- JEP 302: Lambda Leftovers (including underscore for
param)
- JEP 305: Pattern Matching (Preview)
- Data Classes for Java
- Project Amber
- Valhalla
- Loom
And in the future?
SLIDE 50
SLIDE 51
Performance
SLIDE 52
Memory Usage
SLIDE 53
- 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 Collectors
SLIDE 54
- 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)
- Java 12: JEP 189: Shenandoah (Experimental)
- Java 12: More Updates to G1
- Java 12: More Improvements to ZGC
Garbage Collectors
SLIDE 55
Cost Cost
£$€
SLIDE 56
Catch the 6 month release train
SLIDE 57
If It Hurts, Do It More Frequently, and Bring the Pain Forward
An idea from Extreme Programming (XP)
Continuous Delivery – Jez Humble & Dave Farley
SLIDE 58
SLIDE 59
Modularity? Modularity?
SLIDE 60
Miss Missing ing class classes / es / methods methods
SLIDE 61
SLIDE 62
Run on updated JDK Run on updated JDK
It might “just work”
SLIDE 63
Address Address compiler compiler warnings warnings
…they are there for a reason
SLIDE 64
Update your dependencies Update your dependencies
And add new ones
SLIDE 65
Update your build Update your build tool tool
Maven and Gradle work with Java 12
SLIDE 66
Compile Compile against updated against updated JDK JDK
…and start using the shiny new features
SLIDE 67
SLIDE 68
Java Is Changing Java Is Changing
…fast
SLIDE 69
Modern Jav Modern Java a Can Help Can Help You You
Performance, cost, maintenance…
SLIDE 70
Upgrade Now Upgrade Now And Reduce Future And Reduce Future Pain Pain
…and keep upgrading, at least in CI
SLIDE 71