Learn how to use advanced techniques like short-circuiting, parallel execution, virtual threads, and stream gatherers to maximize Java stream performance.
Learn how to use pattern-matching features in your Java programs, including pattern matching with switch statements, when clauses, sealed classes, and a preview of primitive type pattern matching in Java 23.
Since Java 21, wrapper classes have played an increasingly sophisticated role in Java’s type system. Here’s everything you need to know about updates for virtual threads, pattern matching, and more.
Get a deep dive into using method references in your Java programs, including stream operations, event listeners, and constructors and factories.
Type erasure in Java generics programming can cause a variety of problems in your code. Fortunately, there are ways to work around them.
Take your coding to the next level by learning advanced programming with generics. Here's how to use generic methods with type inference, type parameters, and wildcards in your Java programs.
Generics make your code more flexible and easier to read, and they help you avoid ClassCastExceptions at runtime. Get started with this introduction to using generics with the Java Collections Framework.
Learn how and why Java developers use method overloading, then test your learning against the Java virtual machine itself.