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


Big O Notation and Time Complexity – Easily Explained
May 28, 2020Big O notation and time complexity – easily explained with examples and diagrams, entirely without mathematics: O(1), O(log n), O(n), O(n log n), O(n²).
Stack, Queue, Deque in Java
April 8, 2020How do the stack, queue and deque data structures work? Which implementations are available in the JDK? Which one should you use when?
Java Deep Reflection: How to Hack Integer and String
March 11, 2020In Java: can 2+3 = 6? How can Deep Reflection be used to change the values of Integers and Strings at runtime?
Java ByteBuffer Example: How to Use flip() and compact()
February 26, 2020How does Java’s ByteBuffer work? What do “position”, “limit” and “capacity” stand for? How exactly do flip() and compact() work? With example.
FileChannel, Memory-Mapped I/O, Locks (Java Files Tutorial)
February 26, 2020How do FileChannel and ByteBuffer work? What is a memory-mapped file? How to obtain write and read locks on sections of a file?
DataOutputStream + DataInputStream (Java Files Tutorial)
February 12, 2020How to write primitive data types (int, long, char, ...) to files and how to read them back? DataOutputStream, DataInputStream.
How to List, Move, Copy, and Delete Files (Java Files Tutorial)
January 29, 2020How to list all files in a directory (recursively) in Java? How to move, copy and delete files? How to create a symbolic link with Java?
File and Directory Names in Java: File, Path, Paths
January 15, 2020Filename, directory name, path – what’s the difference? How to construct file paths in Java with File, Path, and Paths, independent of the OS.
How to Write Files Quickly and Easily (Java Files Tutorial)
December 4, 2019How to write files in Java? Write text and binary files fast and easily. When to use FileWriter, when to use FileOutputStream?
How to Read a File in Java – to String, Byte Array, or Line by Line
November 21, 2019How to read a file in Java – into a string, a byte array, or line by line. Files, FileReader and BufferedReader compared, plus character encoding.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