"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.
#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.
Using Java 17 latest features in real world projectsWelcome to this issue of the WeAreDevelopers Live Talk series. This article recaps an interesting talk by Ron Veen who introduced the audience to some of the most interesting features that got added to the Java language.About the speaker:Ron is a hig...