All 135 articles, sorted alphabetically
Java Amber Project
Language ergonomics. Records, patterns, etc.
Read article →Java Annotations
How Java annotations provide metadata for frameworks, tooling, and compile-time processing.
Read article →AssertJ
Chained + readable.
Read article →async-profiler
Low-overhead sampling.
Read article →Java Atomic Classes
AtomicInteger, AtomicReference etc.
Read article →Bazel
Reproducible + scalable.
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 Collectors
Terminal reduce operations.
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 Containerization
Sizing + JVM in containers.
Read article →Java CountDownLatch
Wait for N events.
Read article →Java Deprecation + Removals
Nashorn, applets, SecurityManager.
Read article →Dropwizard
Opinionated JSON API framework.
Read article →Java Enhanced For Loop
for (var e : coll). Iterable.
Read article →Java Epsilon GC
No-op collector.
Read article →Java ExecutorService
Thread pool. Submit + shutdown.
Read article →Java Foreign Function + Memory API (Panama)
Native interop. Java 22+.
Read article →Java FFM API
How Java's Foreign Function and Memory (FFM) API provides safe native interop.
Read article →Java FFM architecture
Deep-dive on the Foreign Function & Memory API: confined vs shared vs automatic arenas, MemorySegment bounds and liveness checks, layo…
Read article →Java ForkJoinPool
Work-stealing pool.
Read article →Java Function + Predicate + Consumer + Supplier
Standard FIs.
Read article →Java Functional Interfaces
@FunctionalInterface. Single abstract method.
Read article →Java G1 Garbage Collector
Modern default. Region-based.
Read article →Java GC Algorithms
The main JVM GC algorithms, their pause characteristics, and when to use each.
Read article →JVM GC architecture
Deep-dive on JVM garbage collectors: regions + TLABs + write barriers, per-collector strategies, tuning and observability.
Read article →Java GC Logs
-Xlog:gc option.
Read article →Java Generics
How Java generics work: type parameters, bounded types, wildcards, and the reality of type erasure.
Read article →Java Generics Improvements
Diamond operator + wildcard.
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 →Java GraalVM Native Image
Ahead-of-time compilation.
Read article →Gradle
Groovy/Kotlin DSL build.
Read article →Java Heap Tuning
Xmx + Xms + GC choice.
Read article →Helidon
Oracle's cloud-native Java.
Read article →Hibernate + JPA
ORM. Historic dominance.
Read article →HotSpot vs GraalVM
Runtime comparison.
Read article →Java HttpClient
How Java 11's HttpClient replaces older HttpURLConnection.
Read article →Java instanceof Pattern Matching
Bind + check in one expression.
Read article →Jakarta EE (was Java EE)
Enterprise Java spec.
Read article →Java Flight Recorder (JFR)
Low-overhead profiling.
Read article →Java Flight Recorder -- always-on, low-overhead profiling
Deep-dive on Java Flight Recorder (JFR): continuous event recording, JFR events (GC/allocation/locks/IO), very low overhead (<1…
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 →Java JIT Compiler (C1/C2)
Tiered compilation.
Read article →JITWatch
See JIT decisions.
Read article →Java jlink
Create minimal runtime.
Read article →jOOQ
SQL as Java DSL.
Read article →Java jpackage
MSI, DMG, DEB, RPM installers.
Read article →JUnit 5 (Jupiter)
Modern Java testing standard.
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 JVMTI + Instrumentation API
Attach agents for profiling/monitoring.
Read article →Java Lambda Expressions
How Java lambdas work, functional interfaces, method references, and how they enable functional-style APIs.
Read article →Java Lambdas
Anonymous functions. Java 8+.
Read article →Project Leyden architecture
Deep-dive on Project Leyden: AOT compilation, startup improvement, condensers, class data cache, compatibility, vs Native Image.
Read article →Java LTS Releases
8, 11, 17, 21, 25.
Read article →MapStruct
Code-gen mapping between DTOs.
Read article →Apache Maven
Standard Java build.
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 →Java MethodHandles + VarHandle
Modern reflection alternative.
Read article →Java Method References
::syntax for lambdas.
Read article →Micrometer
Metrics facade for Java.
Read article →Micronaut
Compile-time DI. Fast + minimal.
Read article →Mockito
Modern default mocking.
Read article →Java Module System (JPMS)
Java 9+. Modularity via module-info.java.
Read article →Java Modules
How the Java Platform Module System (JPMS) provides strong encapsulation for large codebases.
Read article →MyBatis
XML + annotation SQL mapping.
Read article →GraalVM native image architecture
Deep-dive on GraalVM native image: AOT compilation, closed-world analysis, reflection config, metadata repo, build modes, trade-offs.
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 →OpenJDK Vendors
Oracle, Corretto, Temurin, Zulu.
Read article →OpenTelemetry Java
Traces + metrics + logs.
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 OWASP Dependency Check
Vuln scanning.
Read article →Java Parallel GC
Throughput-focused.
Read article →Java Parallel Streams
ForkJoinPool.commonPool.
Read article →Java Pattern Matching
How Java's pattern matching (instanceof, switch) destructures and binds in one expression.
Read article →Java pattern matching architecture
Deep-dive on Java pattern matching: sealed interfaces, records, switch expressions, type + record patterns, guards, exhaustiveness.
Read article →Java Phaser
Reusable multi-phase barrier.
Read article →Play Framework (Java)
Reactive full-stack. Also Scala.
Read article →Project Amber
What Project Amber delivers: records, sealed, pattern matching, and more.
Read article →Project Babylon
How Project Babylon extends Java reflection for AI + accelerator use.
Read article →Project Leyden
How Project Leyden aims to reduce Java startup time via ahead-of-time compilation.
Read article →Project Lilliput
How Project Lilliput reduces Java object header size for memory savings.
Read article →Project Loom
How Project Loom brought virtual threads and structured concurrency to Java.
Read article →Project Panama
How Panama provides safer, faster JNI replacement for calling native code from Java.
Read article →Project Valhalla
How Project Valhalla aims to bring value types and specialized generics to Java.
Read article →Java Project Valhalla Architecture in Depth
A 2500-word walkthrough of Java Project Valhalla: value classes, layout, nullability, generic specialization, migration, escape analysis, performance.
Read article →Project Valhalla Status
The current status of Project Valhalla: value types delivery.
Read article →Java Prometheus Monitoring
Micrometer + Actuator.
Read article →Quarkus
Cloud-native Java. GraalVM-friendly.
Read article →Java Records
How records provide concise immutable data classes in modern Java.
Read article →Java records architecture
Deep-dive on Java records: declaration, auto members, immutability, compact ctor, pattern matching, sealed, serialization, interop.
Read article →Java ReentrantLock
Lock class with more features than synchronized.
Read article →Java Reflection
How Java reflection inspects classes and invokes methods dynamically at runtime.
Read article →Java Scoped Values
How ScopedValue provides context sharing better than ThreadLocal for virtual threads.
Read article →Java Sealed Classes
How sealed classes restrict subclasses to a known set, enabling exhaustive pattern matching.
Read article →Java Sealed Classes
Restrict inheritance. Foundation of ADTs.
Read article →Java Semaphore
Count-based access limiter.
Read article →Java Serial GC
Single-threaded. Small apps.
Read article →Java Shenandoah GC
Alternative low-pause.
Read article →Spring Boot
Opinionated Spring. Auto-config.
Read article →Spring Data
Repository abstraction.
Read article →Spring Framework
DI + AOP + Web. Dominant Java.
Read article →Spring Security
Auth + authz framework.
Read article →java_stream_gatherers
Read article →Java Stream
Core operations.
Read article →Java Streams API
Functional collection processing.
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 string dedup architecture
Deep-dive on Java string deduplication: G1 dedup background scan, compact strings, intern(), dedup table, cost, metrics.
Read article →Java String Templates
Preview. STR."...\{var}..."
Read article →Java Structured Concurrency
How structured concurrency provides bounded, hierarchical concurrent execution.
Read article →Java StructuredTaskScope
Preview. Correlated task groups.
Read article →Java Switch Expressions
Arrow syntax + returns value.
Read article →Java synchronized Keyword
Intrinsic locks. Simple + limited.
Read article →Testcontainers
Real Postgres/Kafka/etc in tests.
Read article →Java Text Blocks
Triple-quote multiline strings.
Read article →Java ThreadLocal
Per-thread storage.
Read article →java.util.function Package
Rich set of functional interfaces.
Read article →Project Valhalla architecture
Deep-dive on Project Valhalla: value classes, primitive classes, flat layout, generic specialization, nullability, migration.
Read article →Java Valhalla Project
Value types. Future feature.
Read article →Java var
Local variable inference. Java 10+.
Read article →Java Vector API
SIMD via API. Preview.
Read article →Vert.x
Reactive polyglot toolkit.
Read article →Java Virtual Threads
How virtual threads (Project Loom) enable massive concurrency without OS thread costs.
Read article →Java Virtual Threads Architecture in Depth
A 2500-word walkthrough of Java Virtual Threads: application code, carriers, continuations, scheduler, blocking I/O, pinning, ReentrantLock, structure…
Read article →Java Virtual Threads Deep
Loom preview then final.
Read article →VisualVM
Open-source JVM monitoring.
Read article →Java volatile Keyword
Memory visibility. No atomicity.
Read article →WireMock
Simulate external APIs.
Read article →YourKit + JProfiler
Commercial JVM profilers.
Read article →Java ZGC
Sub-10ms pauses. Very large heaps.
Read article →