Java
-

Access Request and Response Body in HandlerInterceptor
In a Spring Boot application, we sometimes need to inspect or log the HTTP request body and response body. This…
Read More » -

Project Valhalla in Practice: Writing Your First Value Class
JEP 401 is real, it’s in an early-access build today, and you can run it right now. It just isn’t…
Read More » -

Structured Concurrency: What Changes for the Try/Catch Generation
A real CompletableFuture chain, rewritten into StructuredTaskScope, plus the JDBC cancellation gap nobody’s fixed yet. Java developers who learned concurrency…
Read More » -

Compact Object Headers in Production: The Free 15–25% Heap Reduction Nobody Enabled
JEP 519 shipped stable in JDK 25. It shrinks every single object header on the heap. It’s one JVM flag.…
Read More » -

Diagrams from Java
Understanding the structure of a Java application becomes more challenging as the codebase grows. Generating diagrams from source code helps…
Read More » -

Tail Call Optimization: Why the JVM Doesn’t Do It
A bytecode-level look at why recursive calls can’t quietly collapse their stack frames on the JVM, and why Scheme and…
Read More » -

Tracking Application Startup in Spring
Application startup performance is important for modern Spring applications. A slow startup can increase deployment time, delay container readiness, and…
Read More » -

The Observer Effect in JVM Profiling
Attach a profiler to see what the JIT is really doing, and you’ve just changed what the JIT does. On…
Read More » -

Understanding Ahead-of-Time (AOT) Caching in Java
Java applications have traditionally relied heavily on runtime class loading, linking, interpretation, profiling, and Just-in-Time (JIT) compilation. These mechanisms provide…
Read More »


