All Java topics
87 topics and 143 subtopics in 12 stages, from your first program to production microservices. Filter by level or search by name, or follow a learning path if you'd like a set order.
87 topics
Stage 1Java fundamentals
How Java runs, types, control flow, arrays, methods and strings.
- How Java runs: JDK, JRE and JVMBeginner
- Variables and data typesBeginner
- Operators and expressionsBeginner
- Control flow and the modern switchBeginner
- Loops and arraysBeginner
- Methods and pass-by-valueBeginner
- Strings, StringBuilder and text blocksBeginner
- Reading input and formatting outputBeginner
- Numbers: Math, BigDecimal and random valuesBeginner
- RecursionBeginner
Stage 2Object-oriented programming
Classes, the four pillars, interfaces, records, sealed types and the Object contract.
- Classes, objects and constructorsBeginner
- static, final and constantsBeginner
- Packages, imports and project structureBeginner
- Encapsulation, inheritance and polymorphismBeginner
- Abstract classes vs interfacesIntermediate
- Nested, inner and anonymous classesIntermediate
- Enums in depthIntermediate
- Records, enums and sealed typesIntermediate
- equals(), hashCode() and the Object contractIntermediate
- Immutable objectsIntermediate
Stage 3Core APIs
Exceptions, collections, HashMap internals, generics and java.time.
- Exception handlingIntermediate
12 subtopics
- Collections framework: choosing the right oneIntermediate
- Lists, sets and queues in practiceIntermediate
- Sorting objects: Comparable and ComparatorIntermediate
- How HashMap works insideAdvanced
- Maps in practiceIntermediate
- Generics and wildcardsIntermediate
- java.time: dates done rightIntermediate
- Files and I/O with NIO.2Intermediate
- Regular expressionsIntermediate
- Networking: sockets, TCP and URLsIntermediate
- Internationalisation: Locale, formatting and resource bundlesIntermediate
Stage 4Modern Java
Lambdas, streams, Optional and pattern matching.
Stage 5Data structures and algorithms
Big-O, sorting and searching, linked lists, stacks and queues, trees and graphs, and dynamic programming.
Stage 6Design and clean code
Writing code other people can read, the SOLID principles, and the design patterns you'll meet in real projects.
Stage 7Tools and testing
Maven and Gradle, logging, JUnit and Mockito, debugging, annotations and reflection, and JSON with Jackson.
Stage 8Concurrency and the JVM
Threads, locks, CompletableFuture, virtual threads, memory and garbage collection.
Stage 9JDBC, JPA and Hibernate
From raw JDBC to entity mapping, the persistence context, N+1 queries and transactions. Examples use Jakarta Persistence with Hibernate 6/7 and Spring Boot 3+, which need Java 17.
Stage 10Spring Core and Spring MVC
Dependency injection, bean scopes and lifecycle, AOP, and how a request flows through Spring MVC.
Stage 11Spring Boot
Auto-configuration, configuration and profiles, Spring Data JPA, REST APIs, security and testing.
- Auto-configuration and startersBeginner
- Configuration, profiles and propertiesIntermediate
- Spring Data JPA repositoriesIntermediate
- REST APIs, validation and error handlingIntermediate
- Spring Security and JWTAdvanced
- Testing Spring Boot appsIntermediate
- Caching with Spring and RedisIntermediate
- Scheduled and background tasksIntermediate
Stage 12Microservices
Service boundaries, gateways and discovery, messaging, resilience, sagas and deployment.
- Monolith vs microservicesIntermediate
- API gateway and service discoveryIntermediate
- Sync vs async communication (REST and Kafka)Advanced
- Resilience: timeouts, retries and circuit breakersAdvanced
- Distributed data and the saga patternAdvanced
- Docker, Kubernetes and observabilityIntermediate
- CI/CD with GitHub ActionsIntermediate