About this course
This is a free, self-paced Java course that starts with installing a JDK and ends with threads, schedulers, and the data structure questions that come up in interviews. It sticks to the core language and the standard library, the part of Java every framework builds on. Java 25 is the current long-term support release on Oracle's Java SE support roadmap, and the lessons were run on OpenJDK 17.
Most lessons are a small, complete class you can compile with javac and run with java from a terminal, with the output shown underneath. You do not need a Maven or Gradle project for the core syllabus, so when something breaks you are looking at your own code and not at build configuration.
If Java is new to you, go through the chapters in order, since the collections and threading lessons assume you are comfortable with classes and generics. If you already write Java, jump to object-oriented programming, the arrays and collections chapter, or multithreading.

