What you will find in this catalog

The catalog currently contains 24 tutorials organised into three difficulty tracks. Every tutorial follows the same structure: a one-paragraph summary, a worked example you can copy and run, a line-by-line explanation, common pitfalls, and four hands-on exercises at the end. The average tutorial is roughly eight to twelve minutes of reading plus ten minutes of practice — short enough to fit in a coffee break, deep enough to leave you with a skill you can apply the next day.

All code examples are tested against a current Long-Term-Support version of Java (JDK 17 or JDK 21). Where a feature was introduced in a specific Java version — for example records in Java 16, sealed classes in Java 17, pattern matching for switch in Java 21, or virtual threads in Java 21 — we say so explicitly. If you are using an older JDK in production, we note any alternatives that work on Java 8 or Java 11 where relevant. The code snippets themselves are licensed under the MIT License, so you can paste them into your own commercial or personal projects without attribution, although a credit link is appreciated.

We add new tutorials roughly every two weeks and refresh existing ones whenever a new Java LTS ships. If there is a topic you cannot find here, please tell us — reader requests drive a significant portion of our editorial calendar.

Tutorials by difficulty level

Each tutorial is tagged beginner, intermediate, or advanced. If you are new to Java, work through the beginner tutorials in the order they appear below before moving on. If you already know another programming language, you can safely skim the beginner tutorials and start with the intermediate track. The advanced track assumes you are comfortable with object-oriented programming, the collections framework, and exception handling.

Beginner tutorials (10 tutorials)

The beginner track covers the syntax and building blocks you will use in every Java program. Topics include installing the JDK, the basic structure of a .java file, primitive and reference types, operators, control flow with if and switch, all four loop forms, methods, arrays, and the immutable String class. By the end of the beginner track you should be able to read most Java source code and write small command-line utilities from scratch. Tutorials in this track: Introduction, Syntax, Variables, Data Types, Operators, Conditions, Loops, Methods, Arrays, Strings.

Intermediate tutorials (9 tutorials)

The intermediate track is where you learn to design your own types and to work with the standard library's data structures. You will meet classes, objects, the four pillars of object-oriented programming (encapsulation, inheritance, polymorphism, abstraction), interfaces, exception handling, and the two collections you will use every day at work: ArrayList and HashMap. We also cover file I/O with the modern java.nio.file API, which is cleaner and safer than the legacy java.io.File approach. Tutorials in this track: Classes & Objects, Inheritance, Polymorphism, Encapsulation, Interfaces, Exception Handling, ArrayList, HashMap, File Handling.

Advanced tutorials (5 tutorials)

The advanced track covers the topics that distinguish a working Java professional from someone who has merely read the syntax. You will learn the functional Streams API, lambda expressions and method references, multithreading with both classic platform threads and Java 21 virtual threads, database access with JDBC, and building production web applications with Spring Boot. These tutorials assume you can already write idiomatic Java and are ready to take on the wider ecosystem. Tutorials in this track: Streams, Lambda Expressions, Multithreading, JDBC, Spring Boot.

Where to start

If you have never written Java before, start with the Java Introduction tutorial. It walks you through installing the JDK and running your first program in under ten minutes.

Catalog

Browse all 24 tutorials

Click any card to open the full tutorial. Use the search box in the header to filter by name or topic.

How to use these tutorials effectively

Reading a tutorial passively is the slowest way to learn. We recommend a four-step rhythm that turns each tutorial into a durable skill. First, skim the whole tutorial from top to bottom without writing any code — this gives you a map of the territory. Second, return to the top and type the first code example into your own IDE or editor; do not copy and paste, even though the copy button exists. The act of typing builds muscle memory that you cannot get any other way. Third, read the explanation that follows the code carefully, especially the “common pitfalls” callouts, because those are the bugs you will otherwise hit at 2 a.m. in production. Fourth, attempt the four exercises at the end without looking at the answer first.

If you get stuck on an exercise, resist the urge to search the web immediately. Try for fifteen minutes: read the error message, check the tutorial, and try a small variation. Most learners solve the exercise in that window. If you are still stuck after fifteen minutes, search for the specific error message text — you will usually find a Stack Overflow answer that pinpoints the issue. Reading other people's debugging process is itself a skill, and one that experienced engineers rely on daily.

When you finish a tutorial, do not immediately start the next one. Sleep on it. The consolidation that happens during sleep is when short-term memory becomes long-term skill. The next morning, open your editor and try to recreate the tutorial's example from memory. The gaps you find in your recall are exactly the parts to re-read.

Frequently asked questions

Do these tutorials cover the latest Java version?

Yes. Every code example is tested against the latest Long-Term-Support version of Java, which at the time of writing is Java 21. Where a feature requires a newer Java — for example virtual threads, which are stable in Java 21 — we say so explicitly. Where an older syntax still works and is common in production codebases, we show it. Many enterprises run Java 8 or Java 11, so we keep those variations in mind throughout.

Are the code examples free to use in my own projects?

Yes. All code snippets in the tutorials are licensed under the MIT License, which means you can copy, modify, merge, publish, distribute, and use them in commercial and personal projects without attribution. The prose explanations, however, are © Dashboardesk and may not be republished on another website without permission. See our Terms of Use for the full licence.

How often are the tutorials updated?

We aim to refresh each tutorial at least once a year, usually when a new Java LTS ships. When a tutorial is updated, the “last reviewed” date in the page metadata changes. Major version bumps (Java 17 to 21, for example) trigger a full review of every tutorial. Minor updates — clarifying a sentence, fixing a typo, adding an example — happen continuously based on reader feedback.

Can I request a tutorial on a topic that is not here?

Absolutely. Use the contact page and tell us what you want to learn. We get many requests and cannot promise to write every one, but we do prioritise requests that come from multiple readers. Recent reader-requested tutorials include sealed classes, virtual threads, and the JUnit 5 testing framework.

Why is there no video content?

We made a deliberate editorial choice to publish text tutorials. Text is searchable, skimmable, and easy to copy code from. Video is wonderful for some learners, but it forces every reader to consume content at the narrator's pace, and you cannot paste a video segment into your IDE. If you learn better from video, we recommend pairing each tutorial here with a short YouTube search for the same topic — the combination of reading and watching is genuinely effective.