Home
Data Structures and Algorithms
Complexity Analysis
Arrays
Searching & Sorting
Linked Lists
Stacks
Queues
Heaps & Priority Queues
Hashing
Trees
Graphs
Tries
Math & Bit Manipulation
Greedy Algorithms
Backtracking
Dynamic Programming
Summary
About
Dark
Guide contents
Java Deep Dive
Language Core
1.
Types, Variables, and Expressions
2.
Strings and Text
3.
Classes, Interfaces, and Inheritance
4.
Exceptions
5.
Object Contracts: equals, hashCode, and Comparison
6.
Immutability, Defensive Copying, and Object Lifecycle
7.
Records and Sealed Types
8.
Pattern Matching
9.
Packages, Modules, and Reflection
10.
Enums and Annotations
Generics
11.
Generic Types, Bounds, and Wildcards
12.
Type Erasure
Lambdas and Optional
13.
Lambdas and Functional Interfaces
14.
Optional, Null Handling, and API Design
Collections
15.
Lists, Deques, and Iteration
16.
HashMap Internals
17.
Sorted Maps, Sets, and Priority Queues
18.
Primitive Collections and Memory Cost
Streams
19.
Streams and Collectors
20.
Gatherers, Parallel Streams, and Stream Cost
Testing
21.
JUnit 5
22.
Mockito
23.
Testcontainers and Testing Concurrent Code
Concurrency
24.
Threads, synchronized, wait and notify
25.
Locks and Synchronizers
26.
Executors and CompletableFuture
27.
Concurrent Collections
28.
Virtual Threads in Depth
CPU and Memory Hardware
29.
CPU Caches and Locality
30.
Cache Coherence, False Sharing, Branch Prediction, and NUMA
Java Memory Model
31.
Visibility, Atomicity, and Reordering
32.
Happens-Before and volatile
33.
Safe Publication and final Fields
Atomics and Lock-Free Code
34.
Atomic Classes and CAS
35.
VarHandle, Access Modes, and Fences
36.
Ring Buffers and Lock-Free Queues
37.
The LMAX Disruptor Pattern
JVM Internals
38.
Bytecode and Class Loading
39.
Object Layout and Allocation
40.
Stack, Heap, Metaspace, and Code Cache
41.
Safepoints, Warmup, and Deoptimization
JIT Compilation
42.
Tiered Compilation, Inlining, and Intrinsics
43.
Escape Analysis, Loop Optimizations, and Generated Assembly
Garbage Collection
44.
GC Fundamentals
45.
G1 in Depth
46.
ZGC and Shenandoah
47.
Serial, Parallel, Epsilon, and GC Tuning
Off-Heap Memory
48.
ByteBuffer, Direct Buffers, and Memory-Mapped Files
49.
The Foreign Function and Memory API
Linux for Java
50.
Processes, Threads, and Scheduling
51.
Virtual Memory, Page Faults, and perf
Performance Tooling
52.
Benchmarking with JMH
53.
JFR, async-profiler, and Flame Graphs
54.
Measuring Latency: Percentiles and Coordinated Omission
Networking and I/O
55.
Streams, Readers, and Files
56.
NIO Channels and Selectors
57.
TCP, UDP, Multicast, and the HTTP Client
58.
Binary Protocols and Encoding
Low-Latency Java
59.
Allocation-Free and Cache-Friendly Code
60.
Agrona, Aeron, SBE, and Chronicle
Fintech Correctness
61.
Money, BigDecimal, and Rounding
62.
Idempotency, Ledgers, and Reconciliation
Trading Systems
63.
Market Data, Orders, and FIX
64.
Project: Limit Order Book
65.
Project: Matching Engine
66.
Project: Market Data Handler
Java 17 to 25 Reference
67.
What Changed from Java 17 to Java 25
Interview Questions
68.
Core Java, Generics, Collections, and Streams
69.
Concurrency, Memory Model, and Lock-Free Code
70.
JVM, JIT, GC, and Performance
71.
Low-Latency, Networking, Fintech, and Trading
Home
/
Java Deep Dive
/
Linux for Java
Linux for Java
Processes, threads, scheduling, CPU affinity, virtual memory, page faults, and perf.
2 lessons
50.
Processes, Threads, and Scheduling
51.
Virtual Memory, Page Faults, and perf