All 49 articles, sorted alphabetically
async-profiler
Low-overhead sampling.
Read article →Java Atomic Classes
AtomicInteger, AtomicReference etc.
Read article →Java BlockingQueue
Producer-consumer.
Read article →Java Class Data Sharing (CDS)
AppCDS speeds startup.
Read article →JVM class loading architecture
Deep-dive on JVM class loading: bootstrap/platform/application loaders and parent delegation, the load-verify-prepare-resolve-initialize pipeline, (na…
Read article →Java Collections Framework
The Java Collections Framework: List, Set, Map interfaces and their common implementations (ArrayList, HashMap, TreeSet).
Read article →Java CompletableFuture
Async composition.
Read article →Java Concurrency
Java's concurrency toolkit: threads, synchronized, locks, atomics, executors, and the java.util.concurrent package.
Read article →Java ConcurrentHashMap
Lock-free reads. Scoped writes.
Read article →Java CountDownLatch
Wait for N events.
Read article →Java CRaC architecture
Deep-dive on CRaC (Coordinated Restore at Checkpoint): snapshot a fully JIT-warmed JVM to a CRIU-based process image and restore new instances from it…
Read article →Dropwizard
Opinionated JSON API framework.
Read article →JVM escape analysis architecture
Deep-dive on HotSpot escape analysis: the NoEscape/ArgEscape/GlobalEscape states, scalar replacement that dissolves objects into registers, lock elisi…
Read article →Java ExecutorService
Thread pool. Submit + shutdown.
Read article →Java FFM architecture
The Foreign Function & Memory API (JEP 454): confined vs shared vs automatic arenas, MemorySegment bounds and liveness checks, downcall/upcall stubs, jextract, and the end of JNI…
Read article →Java ForkJoinPool
Work-stealing pool.
Read article →Java G1 Garbage Collector
Modern default. Region-based.
Read article →JVM GC architecture
Deep-dive on JVM garbage collectors: regions + TLABs + write barriers, per-collector strategies, tuning and observability.
Read article →Java Generics
How Java generics work: type parameters, bounded types, wildcards, and the reality of type erasure.
Read article →GraalVM Architecture in Depth
A 2500-word walkthrough of GraalVM: compiler, Native Image AOT, instant startup, low memory, reflection config, Truffle polyglot, framework support.
Read article →Helidon
Oracle's cloud-native Java.
Read article →Java Flight Recorder (JFR)
Low-overhead profiling.
Read article →JVM JIT architecture
Deep-dive on JVM JIT: interpreter, C1, C2, Graal, tiered compilation, inline caches, escape analysis, deoptimization, code cache, diagnostics.
Read article →JVM Garbage Collection Architecture in Depth
A 2500-word walkthrough of JVM GC: application threads, generational heap, G1, ZGC, Shenandoah, write barriers, TLABs, and observability.
Read article →JVM Memory Model
How JVM memory is organized: heap generations, stack per thread, metaspace for class metadata, and off-heap for direct buffers.
Read article →Java Lambda Expressions
How Java lambdas work, functional interfaces, method references, and how they enable functional-style APIs.
Read article →Java Memory Model -- happens-before, visibility, and data races
Deep-dive on the Java Memory Model: the visibility/ordering problem from caches and reordering, happens-before, volatile/synchronized/final/atomics es…
Read article →JVM Metaspace architecture
Deep-dive on JVM Metaspace: what replaced PermGen, class vs non-class space, compressed klass pointers, the chunk and arena allocator, MetaspaceSize v…
Read article →Java Method References
::syntax for lambdas.
Read article →Java NIO and Netty
Deep-dive on Java NIO and Netty: selector-driven non-blocking IO, event loops and handler pipelines, codecs for framing, pooled off-heap ByteBuffers, …
Read article →Java Optional
Null-safe wrapper.
Read article →Java Overview
What Java is, why the JVM matters, and where Java fits in modern computing after 25+ years.
Read article →Java Pattern Matching
How Java's pattern matching (instanceof, switch) destructures and binds in one expression.
Read article →Java Phaser
Reusable multi-phase barrier.
Read article →Project Valhalla
How Project Valhalla aims to bring value types and specialized generics to Java.
Read article →Java Records
How records provide concise immutable data classes in modern Java.
Read article →Java ReentrantLock
Lock class with more features than synchronized.
Read article →JVM safepoints architecture
Deep-dive on JVM safepoints: how the runtime raises a global poll flag and brings every application thread to a compiler-inserted poll site (method bo…
Read article →Java Scoped Values
How ScopedValue provides context sharing better than ThreadLocal for virtual threads.
Read article →Java Semaphore
Count-based access limiter.
Read article →Java Shenandoah GC
Alternative low-pause.
Read article →Java Streams API
How the Streams API enables functional-style data processing in Java: filter, map, collect, reduce, and parallel streams.
Read article →Java Structured Concurrency
How structured concurrency provides bounded, hierarchical concurrent execution.
Read article →Java synchronized Keyword
Intrinsic locks. Simple + limited.
Read article →Java ThreadLocal
Per-thread storage.
Read article →Java Vector API
SIMD via API. Preview.
Read article →Java Virtual Threads
How virtual threads (Project Loom) enable massive concurrency without OS thread costs.
Read article →Java volatile Keyword
Memory visibility. No atomicity.
Read article →Java ZGC
Sub-10ms pauses. Very large heaps.
Read article →