Introducing Teeing: A Hidden Gem in the Java API
teeing() method returns a Collector, a composite of two downstream collectors. There will be a single Collector and a single pass in the …

teeing() method returns a Collector, a composite of two downstream collectors. There will be a single Collector and a single pass in the …

Multi-threading is a very intriguing topic, even after years of research and development for high quality, robust, and efficient software.
In the previous post, I briefly introduced unified logging and a simple GC configuration. For the savvy GC tuners, there are many options.
Modules, Modules, Modules, Modules, everywhere... when will you publish your first Java module to Maven Central?
Did you know "var" won’t work with a null assignment because no specific type can be inferred and we cannot declare a variable of null type?

This week, I learned about a "new" feature of Optional that I want to share in this post. Available since Java 9, its novelty is relative.

Let's use a 20 year old JAR, once created for a Java Applet to be run in the Java 1.1 Browser Plugin... and run it on JDK 11!

This article aims to describe ways to create self-contained executable JARs, also known as uber-JARs or fat JARs.
The terrible NullPointerException (NPE) is the most frequent Java exception occurring in production, according to a 2016 study. Read on!

If OpenJDK is the background source for your livelihood, you might want to contribute to future development of the OpenJDK. Find out how!