Modern Java
From OOP fundamentals to records, sealed types, streams, virtual threads and JVM internals — targeting Java 21 LTS.
26 lessons6 modules6 advanced topics
0/26 completed
01
Fundamentals
7 lessons1beginnerOOP Principles in JavaEncapsulation, inheritance, polymorphism and abstraction — what they mean, how Java implements them, and how they are tested in interviews.2beginnerClasses, Objects & InitializationConstructors, static vs instance members, initialization order, final, and how objects live on the heap.3beginnerInterfaces vs Abstract ClassesDefault, static and private interface methods, the diamond problem, functional interfaces — and how to choose between interface and abstract class.4intermediateGenericsType parameters, bounded types, wildcards and PECS, type erasure and its consequences.5beginnerException HandlingChecked vs unchecked exceptions, try-with-resources, custom exceptions, chaining and best practices for production code.6beginnerStrings, StringBuilder & the String PoolWhy String is immutable, how the string pool and interning work, == vs equals, and efficient string building.7intermediateequals, hashCode, Comparable & ComparatorThe equals/hashCode contract, why breaking it corrupts HashMaps, and how to order objects with Comparable and Comparator.
02
Collections
3 lessons8beginnerThe Collections FrameworkList, Set, Queue, Deque and Map — the main implementations, their complexity, and how to choose the right one.9intermediateHow HashMap Works InternallyBuckets, hashing, collisions, treeification, resizing and load factor — the most asked Java collections interview topic.10intermediateImmutable & Sequenced CollectionsList.of vs Collections.unmodifiableList vs Arrays.asList, defensive copies, and Java 21 sequenced collections.
03
Functional Java (Java 8+)
6 lessons11beginnerLambdas & Functional InterfacesLambda syntax, the java.util.function toolkit, effectively-final captures, and composing behaviour with Java 8+.12beginnerMethod ReferencesThe four kinds of method references, how they map to functional interfaces, and when they beat a lambda.13intermediateStream API FundamentalsBuilding pipelines with filter, map, flatMap and reduce — laziness, short-circuiting, primitive streams and parallel pitfalls.14intermediateCollectors Deep DivegroupingBy, partitioningBy, toMap, downstream collectors, teeing and writing your own Collector.15beginnerOptional Done RightWhat Optional is for, the idiomatic API, the anti-patterns to avoid and where not to use it.16beginnerDate & Time APILocalDate, ZonedDateTime, Instant, Duration, Period and formatting — the java.time API and how to avoid time-zone bugs.
04
Modern Java (17–21)
4 lessons17beginnervar, Switch Expressions & Text BlocksThe everyday Java 10–17 language improvements — local type inference, arrow switches that return values, and multi-line strings.18beginnerRecordsConcise immutable data carriers — compact constructors, validation, custom methods, local records and where records fit (and don't).19intermediateSealed Classes & Pattern MatchingClosed hierarchies with sealed/permits, type and record patterns in switch, guards, exhaustiveness and data-oriented programming.20advancedVirtual ThreadsProject Loom's lightweight threads — how they work, when they help, pinning, and using them in Spring Boot.
05
Concurrency
4 lessons21intermediateThreads & the Executor FrameworkThread lifecycle, Runnable vs Callable, ExecutorService, thread pool sizing, Future and graceful shutdown.22advancedsynchronized, volatile & the Java Memory ModelRace conditions, visibility, happens-before, intrinsic locks, wait/notify and deadlocks — the foundations of thread safety.23advancedLocks, Atomics & Concurrent CollectionsReentrantLock, ReadWriteLock, CAS and atomic classes, LongAdder, ConcurrentHashMap, BlockingQueue and synchronisers.24advancedCompletableFutureComposing asynchronous work — thenApply vs thenCompose, combining futures, error handling, timeouts and executors.
06
JVM Internals
2 lessons25advancedJVM Memory & Garbage CollectionHeap, stack, metaspace, generational GC, G1 vs ZGC, memory leaks and the flags and tools to diagnose them.26advancedClass Loading, Bytecode & the JITHow .java becomes running machine code — the class loader hierarchy, delegation, linking, tiered JIT compilation and AOT.