OrgPad logo

Java Updates: 8 -> 17

Created by James

Java Updates: 8 -> 17

9-16 Not Free

OracleJDK

17+ Free for 1 year

Java Source Code

OpenJDK project

Java Distributions

Adoptium (formerly AdoptOpenJDK)

Free

Java Versioning

https://www.marcobehler.com/guides/a-guide-to-java-versions-and-features

https://dzone.com/articles/a-guide-to-java-versions-and-features

https://ondro.inginea.eu/index.php/new-features-in-java-versions-since-java-8/

 

Timeline

javaversions-5

Post-2017

Long Term Support every 6th release (2 years)

Sporadic, Uplanned Releases

Pre-2017

Fewer Features Added Each Release

6 month releases

8

9

10

11

12

13

14

15

16

17

Improved try-with-resources

Project Jigsaw: Modules and Multi-Release Jar Files

Incubator Modules

Local-Variable Type Inference: var-keyword

var for Lambda

Current Ryota Version

Preview Features

JShell

Unicode 11 Support

Unicode 12.1 Support

Multiline Strings Preview Version

Multiline Strings Release Version

Sealed Classes Final Version

Additional Methods for Collections

Diamond Operator Extensions

Added ifPresentOrElse() for Optionals

New String methods

E.g.

isBlank()

lines()

.strip()

Run Source Files Without Compiling

A step towards scripting

Sealed Classes Preview Version

Sealed Classes Preview Updates

New Switch Expression Preview Version

Switch Expression Preview Updates

Switch Expression Final Version

Why Are Companies Stuck On 8?

There’s a mix of different reasons companies are still stuck with Java 8. To name a few:

To sum up: you have a mix of practical issues (upgrading your tools, libraries, frameworks) and political issues.

Private methods for Interfaces

New annotation type Serial

Pattern Matching for switch-statement Preview Version

Additional Methods for Stream API

Vector API Incubator Version

HTTPClient Incubator Version

HTTPClient Final Version

NullPointerException improvements

Foreign-Memory Access API Incubator Version

Records Preview Version

Records Final Version

Pattern Matching for instanceof Preview Version

Pattern Matching for instanceof Final Version