A detailed guide to Java 12: migration, version requirements, new features (switch expressions, teeing collectors, indenting/transforming Strings, and more), and JVM changes (default CDS, Shenandoah, G1).
The teeing collector, available since Java 12 as Collectors::teeing, forwards its input to two other collectors before merging their results with a function.
Java 12 introduces switch expressions. Together with a new lambda-style arrow syntax, this makes switch more expressive and less error-prone.
Think Java 11 is just a maintenance release? Think again! Here are eleven small but shiny additions to classes like String, Path, Files, Collection, Optional, and others that make coding a little more elegant.
From Java 11 on, you can execute a single source file without compiling it first. Beyond experimentation, you can write scripts this way. Even the shebang is supported!
With Java 11’s new reactive HTTP/2 API, request and response bodies can be handled with reactive streams, which gives you full control over the bytes going over the wire: you can throttle, stream, and even cancel early.
Java 11 ships with a new, fluent HTTP/2 API. This tutorial explains the basic building blocks and how to send requests synchronously and asynchronously.
Migrating from Java 8 to Java 11? Then this post has got you covered. It discusses licensing, long-term support, update preparations, version requirements, common migration challenges, and more.
A detailed look at @Disabled, its conditional counterparts, and how to create custom conditions that allow us to flexibly disable test methods.
The JUnit 5 extension model enables detailed, flexible, and powerful additions to JUnit 5’s core features. For that it provides specific extension points and easy composition of annotations.