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


Java Object Headers and Compressed Class Pointers
November 25, 2024Java object header layout: Mark Word, Class Word, Compressed Class Space, and Compressed Class Pointers – and how big the header is.
Java 23 Features (with Examples)
June 6, 2024All Java 23 features with examples: Markdown in JavaDoc, import modules, primitive type patterns, set fields before super() + more!
Java main() Method – Syntax and Simplification Since Java 25
May 30, 2024What does public static void main(String[] args) mean? The main() method, step by step – and why void main() is enough since Java 25.
Java Array Length and Size: .length, 2D Arrays, Max Array Size
April 14, 2024How to get and set the length of a Java array, including 2D arrays – plus an array’s memory use in Java 27 and the maximum array size.
How to Declare and Initialize Arrays in Java
April 9, 2024How to declare and initialize arrays in Java, fill and copy them, and convert lists, sets, and streams into arrays – including 2D arrays.
Hexagonal Architecture With Spring Boot: Example on GitHub
December 27, 2023Hexagonal architecture in Spring Boot by example: REST and JPA adapters, configuration and tests – full code on GitHub.
Java 22 Features (with Examples)
December 7, 2023Java 22 features with examples: Foreign Function & Memory API, unnamed variables & patterns, multi-file programs, Stream Gatherers + more.
Java FFM API (JEP 454): Foreign Function & Memory API Tutorial
December 7, 2023Learn how to use the FFM API (Project Panama) to call native libraries from Java and access native memory – without JNI.
Java Stream Gatherers – Write Your Own Stream Operations!
December 6, 2023Stream Gatherers (JEP 485): the five built-in gatherers from windowFixed to mapConcurrent – and how to write your own stream operations.
Flexible Constructor Bodies (JEP 513): Code Before super() in Java 25
December 5, 2023Flexible Constructor Bodies (JEP 513): since Java 25, code can run before super(...) and this(...). Examples, restrictions, compiler errors.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