Learning path
Java learning path: everything to study, topic by topic
Comprehensive Java assessment covering language fundamentals, core APIs, concurrency, JVM internals, frameworks, and modern Java features.
Short answer
To learn Java, work through 6 modules and 33 topics in the order they build on each other. It starts with Language Fundamentals, then moves on to Core Java and Concurrency. Use the map as a checklist, or measure your level and study only what is missing.
What you will study
Topics are grouped by module. Open one to see its objectives and key concepts.
1 · Language Fundamentals5 topics
Types & Operators
Primitive types, wrapper classes, autoboxing, type promotion, and operator precedence
Objectives
- Distinguish primitives from wrapper classes
- Predict type promotion and autoboxing behaviour
Key concepts
- primitive types
- wrapper classes
- autoboxing
- type promotion
- operator precedence
- var keyword
Control Flow
If/else, switch expressions, loops, enhanced for, pattern matching, and labeled breaks
Objectives
- Use modern switch expressions correctly
- Predict loop and branch execution flow
Key concepts
- switch expressions
- pattern matching
- enhanced for
- labeled break
- short-circuit evaluation
OOP Basics
Classes, interfaces, inheritance, polymorphism, sealed classes, and records
Objectives
- Apply inheritance and polymorphism correctly
- Choose between interfaces, abstract classes, and records
Key concepts
- inheritance
- polymorphism
- interfaces
- abstract classes
- sealed classes
- records
- encapsulation
Exception Handling
Checked vs unchecked exceptions, try-with-resources, custom exceptions, and best practices
Objectives
- Distinguish checked from unchecked exceptions
- Use try-with-resources for safe resource management
Key concepts
- checked exceptions
- unchecked exceptions
- try-with-resources
- custom exceptions
- exception chaining
- AutoCloseable
Documentation
Javadoc syntax, tags, package-info, generating HTML docs, and code examples in documentation
Objectives
- Write complete Javadoc with proper tags for public APIs
- Generate and navigate HTML documentation from source code
Key concepts
- Javadoc syntax
- @param tag
- @return tag
- @throws tag
- package-info.java
- generating HTML docs
- code examples in docs
- @see and @link
2 · Core Java5 topics
Collections Framework
List, Set, Map implementations, iteration, Comparable/Comparator, and Collections utility
Objectives
- Choose the right collection for a given scenario
- Understand time complexity of common operations
Key concepts
- ArrayList
- LinkedList
- HashMap
- TreeMap
- HashSet
- Comparable
- Comparator
- Collections utility
Generics
Type parameters, bounded types, wildcards, type erasure, and generic methods
Objectives
- Apply PECS for wildcard usage
- Explain type erasure implications
Key concepts
- type parameters
- bounded types
- upper/lower wildcards
- type erasure
- generic methods
- PECS principle
I/O & NIO
Streams, readers/writers, Path API, channels, buffers, and file watching
Objectives
- Choose between IO and NIO for different use cases
- Use Path API for modern file operations
Key concepts
- InputStream/OutputStream
- Reader/Writer
- BufferedReader
- Files class (NIO)
- Path API
- Channels and Buffers
- try-with-resources
- serialization
Strings & Text
String immutability, StringBuilder, text blocks, String pool, and formatting
Objectives
- Explain String immutability and pool behaviour
- Choose between String and StringBuilder
Key concepts
- String immutability
- String pool
- StringBuilder
- text blocks
- String.format
- intern()
Functional Programming
Lambda expressions, Stream API, functional interfaces, method references, and Optional
Objectives
- Write fluent Stream pipelines with proper terminal operations
- Choose between imperative and functional style for readability and performance
Key concepts
- lambda expressions
- Stream API
- functional interfaces
- method references
- Optional class
- Collectors
- parallel streams
- pure functions
3 · Concurrency4 topics
Thread Basics
Thread lifecycle, Runnable, Callable, ExecutorService, and thread pools
Objectives
- Create and manage threads using ExecutorService
- Explain thread lifecycle states
Key concepts
- Thread lifecycle
- Runnable
- Callable
- ExecutorService
- thread pools
- Future
Synchronized & Locks
synchronized keyword, ReentrantLock, ReadWriteLock, deadlock prevention, and volatile
Objectives
- Identify and prevent deadlock scenarios
- Choose between synchronized and explicit locks
Key concepts
- synchronized
- ReentrantLock
- ReadWriteLock
- volatile
- deadlock
- lock ordering
- happens-before
Concurrent Collections
ConcurrentHashMap, CopyOnWriteArrayList, BlockingQueue, and atomic variables
Objectives
- Select the right concurrent collection for a scenario
- Explain CAS and lock-free approaches
Key concepts
- ConcurrentHashMap
- CopyOnWriteArrayList
- BlockingQueue
- AtomicInteger
- CAS operations
- lock-free algorithms
CompletableFuture
Async composition, thenApply/thenCompose, exception handling, and combining futures
Objectives
- Compose async pipelines with CompletableFuture
- Handle errors in async chains
Key concepts
- CompletableFuture
- thenApply
- thenCompose
- allOf
- exceptionally
- async pipelines
4 · JVM & Performance4 topics
JVM Memory Model
Heap, stack, metaspace, memory areas, JMM happens-before, and memory leaks
Objectives
- Describe JVM memory areas and their roles
- Identify common causes of memory leaks
Key concepts
- heap
- stack
- metaspace
- young/old generation
- JMM
- happens-before
- memory leaks
Garbage Collection
GC algorithms, G1, ZGC, Shenandoah, tuning flags, and GC log analysis
Objectives
- Choose a GC algorithm for different workloads
- Interpret GC logs to diagnose issues
Key concepts
- Serial GC
- Parallel GC
- G1
- ZGC
- Shenandoah
- GC tuning flags
- GC log analysis
Profiling & Optimization
JFR, async-profiler, heap dumps, thread dumps, and micro-benchmarking with JMH
Objectives
- Use profiling tools to find performance bottlenecks
- Write correct JMH benchmarks
Key concepts
- JFR
- async-profiler
- heap dump
- thread dump
- JMH
- flame graphs
- allocation profiling
Class Loading
ClassLoader hierarchy, delegation model, custom loaders, and module system (JPMS)
Objectives
- Explain the classloader delegation model
- Understand JPMS module boundaries
Key concepts
- bootstrap classloader
- application classloader
- delegation model
- custom classloader
- JPMS modules
- classpath vs modulepath
5 · Frameworks & Tools5 topics
Spring Boot
Auto-configuration, dependency injection, bean lifecycle, profiles, and actuator
Objectives
- Explain Spring Boot auto-configuration mechanics
- Configure beans and profiles correctly
Key concepts
- auto-configuration
- dependency injection
- bean lifecycle
- profiles
- actuator
- starters
- @Configuration
JPA & Hibernate
Entity mapping, relationships, JPQL, N+1 problem, caching levels, and lazy loading
Objectives
- Prevent N+1 query problems
- Configure entity relationships correctly
Key concepts
- entity mapping
- @OneToMany/@ManyToOne
- JPQL
- N+1 problem
- first/second level cache
- lazy vs eager
- dirty checking
Testing & JUnit
JUnit 5, Mockito, test slices, integration testing, and TDD practices
Objectives
- Write effective unit and integration tests
- Use test slices for fast Spring tests
Key concepts
- JUnit 5
- Mockito
- @SpringBootTest
- test slices
- Testcontainers
- TDD
- assertion libraries
Build Tools
Maven, Gradle, dependency management, multi-module projects, and CI/CD integration
Objectives
- Configure multi-module builds correctly
- Manage dependency conflicts effectively
Key concepts
- Maven lifecycle
- pom.xml structure
- Gradle build scripts
- Gradle vs Maven
- dependency management
- plugins
- multi-module projects
- Bazel basics
Logging
SLF4J facade, Logback and Log4j2 configuration, logging levels, MDC, and structured logging
Objectives
- Configure logging frameworks with appropriate levels and appenders
- Use MDC and structured logging for production observability
Key concepts
- SLF4J facade
- Logback configuration
- Log4j2
- logging levels
- MDC context
- structured logging
- log rotation
- performance impact
6 · Expert Java10 topics
JVM Internals
Bytecode, JIT compilation, inlining, escape analysis, and intrinsics
Objectives
- Explain JIT compilation tiers and optimizations
- Predict when escape analysis applies
Key concepts
- bytecode
- JIT compilation
- C1/C2 compilers
- inlining
- escape analysis
- intrinsics
- tiered compilation
Microservice Patterns
Circuit breaker, saga, API gateway, service mesh, and observability in Java ecosystems
Objectives
- Design resilient microservices with proper patterns
- Implement distributed tracing and observability
Key concepts
- circuit breaker
- saga pattern
- API gateway
- service mesh
- distributed tracing
- Resilience4j
- Micrometer
Virtual Threads
Project Loom, virtual vs platform threads, structured concurrency, and pinning
Objectives
- Explain virtual thread scheduling and pinning
- Migrate blocking code to virtual threads
Key concepts
- virtual threads
- structured concurrency
- carrier threads
- pinning
- thread-per-request
- StructuredTaskScope
GraalVM & Native Image
GraalVM compiler, native image, substrate VM, reflection config, and startup optimization
Objectives
- Build native images and handle reflection limits
- Compare AOT vs JIT trade-offs
Key concepts
- GraalVM
- native image
- substrate VM
- reflection configuration
- AOT compilation
- closed-world assumption
- startup time
JVM Internals & GC Tuning
Understanding JVM memory model, garbage collectors (G1, ZGC, Shenandoah), and tuning for production workloads
Objectives
- Tune G1GC heap regions and pause targets for a latency-sensitive service
- Interpret GC log output to diagnose pause spikes
Key concepts
- heap regions
- G1GC
- ZGC
- Shenandoah
- GC pause tuning
- safepoints
- GC logs analysis
- -XX flags
Structured Concurrency & ScopedValues
Using Java 21 structured concurrency APIs (StructuredTaskScope) and ScopedValue for context propagation in virtual thread environments
Objectives
- Use StructuredTaskScope.ShutdownOnFailure to fan out subtasks safely
- Replace thread-local variables with ScopedValue in virtual-thread code
Key concepts
- StructuredTaskScope
- ShutdownOnFailure
- ShutdownOnSuccess
- ScopedValue
- context propagation
- task tree lifetime
- cancellation semantics
Java Memory Model & Happens-Before
Understanding the Java Memory Model, happens-before relationships, volatile semantics, and safe publication patterns
Objectives
- Explain the happens-before guarantee for synchronized blocks and volatile writes
- Identify data race conditions and apply correct safe publication patterns
Key concepts
- happens-before
- volatile
- synchronized
- final fields
- safe publication
- memory visibility
- JSR-133
- AtomicXxx
Reactive Programming with Project Reactor
Building reactive streams with Project Reactor (Flux/Mono), backpressure, schedulers, and error handling
Objectives
- Implement a reactive data pipeline with error handling and backpressure
- Choose between flatMap, concatMap, and switchMap for different use cases
Key concepts
- Flux
- Mono
- backpressure
- schedulers
- flatMap vs concatMap
- hot vs cold publishers
- StepVerifier
- WebFlux
Bytecode Manipulation (ASM/ByteBuddy)
Instrumenting Java applications at bytecode level using ASM or ByteBuddy for APM agents and dynamic proxies
Objectives
- Instrument a method with ASM to record invocation metrics
- Build a JavaAgent using ByteBuddy Advice to intercept method calls
Key concepts
- ClassVisitor
- MethodVisitor
- ByteBuddy
- java.lang.instrument
- Advice
- dynamic proxy
- class retransformation
Java Security Architecture
Java security manager, JAAS, JCA/JCE cryptography APIs, secure coding practices, and deserialization hardening
Objectives
- Harden Java deserialization with ObjectInputFilter/SerialFilter
- Use JCA/JCE APIs correctly for encryption, signing, and key management
Key concepts
- SecurityManager
- JAAS
- JCA/JCE
- KeyStore
- deserialization gadgets
- SerialFilter
- JNDI injection
- secure random
Levels: Junior, Mid, Senior, and Expert
Explain it in your own words
Graded by AI · no account · 1 questionNo options to guess from: you write, the AI grades against the topic's rubric and tells you what level your answer reads at.
Already studying Java?
The assessment measures topic by topic, and your plan skips what you already know.
Open to read. An account is only needed to be measured.
Frequently asked questions
Where should I start studying Java?
Start with Language Fundamentals: Types & Operators, Control Flow, and OOP Basics. The map orders topics by what they depend on, so each one prepares the next.
How long does a full Java assessment take?
A full assessment of this path takes about 45 minutes. Study time depends on where you start; a diagnostic shows which topics you can skip.
Do I need an account to use this page?
No. The map, objectives and key concepts are open. You only need an account to be measured, get your gap by topic and receive a plan.