Daniel Strmečki

"What´s New for Developers Moving from Java 11 to 17?"

Stop writing boilerplate. See how Java 17's records, pattern matching, and text blocks can immediately improve your code's readability and safety.

"What´s New for Developers Moving from Java 11 to 17?"
#1about 4 minutes

Understanding the new Java LTS release cadence and licensing

Java's long-term support (LTS) release cycle has shifted from every three years to every two years, and Oracle JDK 17 introduces a new no-cost license for commercial use.

#2about 3 minutes

Using text blocks for more readable multiline strings

Text blocks simplify creating multiline strings, such as formatted HTML or JSON, by using triple quotes to avoid concatenation and escape characters.

#3about 4 minutes

Simplifying logic with enhanced switch expressions

The enhanced switch expression uses arrow syntax to return values, supports multiple case labels, and eliminates the need for `break` statements, preventing fall-through errors.

#4about 3 minutes

Reducing boilerplate with pattern matching for `instanceof`

Pattern matching for the `instanceof` operator allows you to check an object's type and cast it to a new variable in a single line, simplifying type-checking logic.

#5about 4 minutes

Advanced case selection with pattern matching for switch

The preview feature of pattern matching for switch statements enables matching cases by type and adding conditional guards, making switch logic more powerful and expressive.

#6about 3 minutes

Creating immutable data classes easily with records

The `record` keyword provides a concise way to create immutable data carrier classes by automatically generating constructors, getters, `equals()`, `hashCode()`, and `toString()` methods.

#7about 4 minutes

Controlling class inheritance with sealed classes and interfaces

Sealed classes and interfaces restrict which other classes or interfaces may extend or implement them, providing finer-grained control over your class hierarchy.

#8about 2 minutes

A simpler way to collect streams into a list

The new `Stream.toList()` method offers a more concise alternative to `collect(Collectors.toList())` for gathering stream elements into an unmodifiable list.

#9about 2 minutes

Understanding the new random number generator API

Java 17 introduces a new, more extensible API for random number generation centered around the `RandomGenerator` interface, providing a unified way to access various algorithms.

#10about 1 minute

Debugging faster with helpful NullPointerExceptions

NullPointerExceptions now provide detailed messages that specify which variable was null, significantly speeding up the debugging process.

#11about 2 minutes

Summary of changes and considerations for upgrading

The updates from Java 11 to 17 are mostly handy, incremental improvements rather than groundbreaking changes, making the upgrade beneficial but dependent on project constraints.

#12about 14 minutes

Q&A on upgrading, records, and framework compatibility

The Q&A session addresses when to upgrade from non-LTS versions, potential blockers like framework compatibility, and specific questions about records versus Lombok.

Related jobs
Jobs that call for the skills explored in this talk.

Software Engineer

tree-IT GmbH
Bad Neustadt an der Saale, Germany

Remote
Intermediate
Senior

Featured Partners

From learning to earning

Jobs that call for the skills explored in this talk.

Java Developer

Java Developer

Code First Girls

Intermediate
Java
DevOps
Python
JavaScript
Agile Methodologies