
Become a Better Programmer!
Receive regular tips about Java programming, algorithms and data structures!


Generating Random Numbers in Java
January 31, 2022How to generate random numbers in Java? How do Math.random() and Random work? What are pseudorandom numbers? Can they be predicted?
Java Text Blocks
January 19, 2022Text blocks are a notation for multiline strings in Java. Why do we need them? How to write and format them? Which escape sequences must we use?
Java substring() Method
January 17, 2022How to use Java’s String.substring() method? How does substring() work internally, and how has the implementation changed over time?
Sealed Classes in Java
December 28, 2021What are sealed classes and interfaces in Java? How exactly do they work? And why would we want to restrict a class hierarchy’s extensibility?
Java 17 Features (with Examples)
December 28, 2021The new features of Java 17 (LTS) with examples: Sealed Classes, InstantSource, HexFormat, context-specific deserialization filters, and more...
Java Records (with Examples)
December 8, 2021What are Java Records? What do we need them for? How to implement + use them? How to extend them with functionality? What about inheritance?
Java 16 Features (with Examples)
December 8, 2021The new features of Java 16 with examples: “Pattern Matching for instanceof”, Records, Value-Based Classes, Strong Encapsulation, and more...
Java 15 Features (with Examples)
November 23, 2021All the new features of Java 15 with examples: Text Blocks, ZGC + Shenandoah, new String methods, Sealed Classes (preview), and more...
Java 14 Features (with Examples)
November 15, 2021Java 14 features with examples: Switch Expressions, Helpful NullPointerExceptions, Previews: Records + Pattern matching for instanceof + more.
Java 13 Features (with Examples)
November 8, 2021All new features of Java 13 with examples: Switch Expressions (2nd Preview), Text Blocks (Preview), Dynamic CDS Archives, and more...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