
Become a Better Java Developer!
Modern Java: new versions & features, performance, and JVM insights – tutorials and deep dives, clearly explained and directly applicable.


Ring Buffer (Circular Buffer): How It Works and Where Java Uses It
October 18, 2026Ring buffer explained: two indices, wrap-around, full vs. empty – and where Java uses it: ArrayDeque, ArrayBlockingQueue, LMAX Disruptor.
Java BufferedReader: readLine(), lines(), and Reading Line by Line
October 17, 2026Java BufferedReader explained: read files line by line with readLine() and lines(), character encoding, console input, performance, Scanner.
Serialization in Java: Serializable, transient, serialVersionUID
October 15, 2026Java serialization explained: Serializable, ObjectOutputStream, transient, serialVersionUID, records, and deserialization filters.
Java Stream Group By with Collectors.groupingBy()
October 12, 2026Java stream group by with Collectors.groupingBy(): grouping by a key, counting, averaging, downstream collectors, partitioningBy().
Java Parallel Streams (with Examples)
October 8, 2026Java parallel streams explained: how the ForkJoinPool splits the work, measured limits of parallel(), and the rules for correct results.
Java Collectors.toMap() (with Examples)
October 4, 2026Java Collectors.toMap() explained: collecting a stream into a map, resolving duplicate keys with a merge function, map type, null values.
Java Stream reduce() (with Examples)
October 2, 2026Java Stream reduce() explained: the three variants, identity and combiner, parallel streams, and when to use collect() instead.
Java Functional Interfaces (with Examples)
September 28, 2026Java functional interfaces explained from the ground up: the rule, @FunctionalInterface, all 43 interfaces in java.util.function, and when to write your own.
Java Optional (with Examples)
September 25, 2026Java Optional explained with examples: of() and ofNullable(), orElse() vs. orElseGet(), map() and flatMap(), when to use Optional, and what Valhalla changes.
Java Lambda Expressions (with Examples)
September 23, 2026Java lambda expressions explained from the ground up: syntax, target types, effectively final, method references, and how the JVM runs them.Want Even More Knowledge?
My blog features many articles on Java, software architecture, and performance — from foundational concepts to advanced patterns.
If you want to go deeper, check out my trainings: hands-on, easy to understand, and directly applicable to your day-to-day project work. Instead of theory, I teach principles that help you write code that is better, more maintainable, and more performant in the long run.
Explore the Java Trainings