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


Java 24 Features (with Examples)
December 4, 2024Java 24 with code examples: Stream Gatherers, synchronized in virtual threads without pinning, AOT Class Loading, Compact Object Headers.
Ahead-of-Time Class Loading & Linking: Java’s AOT Cache
December 3, 2024Ahead-of-Time Class Loading & Linking speeds up Java application startup by up to 42%. Here’s how to create the AOT cache, step by step.
Primitive Types in Patterns, instanceof, and switch (Java)
December 3, 2024Primitive type patterns bring int, long, and double into pattern matching. Use them in instanceof and switch – a preview since Java 23.
Java Imports: Classes, Packages, and Entire Modules (JEP 511)
December 2, 2024Java imports from class to module: packages, static imports, java.lang – and import module, which imports entire modules since Java 25.
Compressed Oops in Java: 32-Bit References and the 32 GB Limit
November 27, 2024Compressed Oops: 32-bit references on 64-bit systems, heaps below 32 GB, the JVM’s four modes – and when disabling them pays off.
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.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