Java Tech Workshop
Author

Java Tech Workshop

Focused on Java backend technologies, sharing fundamentals, multithreading, JVM, the Spring ecosystem, microservices, distributed systems, high concurrency, source‑code analysis, and practical experience. Continuously delivers high‑quality original content, interview guides, and learning roadmaps to help Java developers progress from beginner to advanced, enhancing technical skills and core competitiveness.

160
Articles
0
Likes
885
Views
0
Comments
Recent Articles

Latest from Java Tech Workshop

100 recent articles max
Java Tech Workshop
Java Tech Workshop
Sep 10, 2026 · Backend Development

@Async Deep Dive: Fixing Transaction Loss, MDC Context Loss, and Silent Exception Swallowing

This article explains why Spring's @Async annotation causes transaction rollback failures, MDC traceId loss in async threads, and silent exception swallowing, then provides production-ready solutions including separate service classes, TaskDecorator for MDC propagation, custom AsyncUncaughtExceptionHandler, and proper thread pool configuration.

@AsyncAOPBackend
0 likes · 26 min read
@Async Deep Dive: Fixing Transaction Loss, MDC Context Loss, and Silent Exception Swallowing
Java Tech Workshop
Java Tech Workshop
Sep 9, 2026 · Fundamentals

Why Your Custom java.lang.String Can Never Replace the JDK's String

This article explains why a custom java.lang.String class cannot replace the JDK's String, detailing the parent delegation class loading model, Bootstrap ClassLoader's role, core class protection mechanisms, Java 9+ module system restrictions, and why attempts to bypass these (custom class loaders, -Xbootclasspath, --patch-module, Java Agents) fail or are unsafe.

Bootstrap ClassLoaderClass LoadingCore Class Protection
0 likes · 23 min read
Why Your Custom java.lang.String Can Never Replace the JDK's String
Java Tech Workshop
Java Tech Workshop
Sep 8, 2026 · Backend Development

ReentrantLock vs synchronized: Source-Code Comparison & Selection Guide

This article provides a comprehensive source-code level comparison of Java's ReentrantLock and synchronized, covering their underlying implementations (JVM monitor vs AQS/CLH), lock upgrade mechanisms, fairness, interruptibility, timeout support, condition variables, and performance characteristics across JDK versions to guide practical selection.

AQSCLH QueueJVM Internals
0 likes · 21 min read
ReentrantLock vs synchronized: Source-Code Comparison & Selection Guide
Java Tech Workshop
Java Tech Workshop
Sep 7, 2026 · Backend Development

From Java Code to CPU Instructions: A Method Call's Complete Journey

This article traces a Java method call through five stages: compilation to bytecode, class loading with vtable resolution, interpretation via stack frames, JIT compilation with optimizations like inlining and escape analysis, and final execution as machine code on CPU pipelines.

CPU pipelineClass LoadingHotSpot
0 likes · 30 min read
From Java Code to CPU Instructions: A Method Call's Complete Journey
Java Tech Workshop
Java Tech Workshop
Sep 6, 2026 · Fundamentals

How Does AQS Queue Threads? CLH Queue, State & Condition Variables Deep Dive

This article provides a comprehensive source-code-level analysis of Java's AbstractQueuedSynchronizer (AQS), detailing its three core components—state, CLH wait queue, and ConditionObject—and walking through exclusive lock acquisition/release, fair vs non-fair locking, shared lock propagation, and condition variable await/signal mechanics with code examples.

AQSCLH QueueCondition Variable
0 likes · 37 min read
How Does AQS Queue Threads? CLH Queue, State & Condition Variables Deep Dive
Java Tech Workshop
Java Tech Workshop
Sep 5, 2026 · Backend Development

Why Spring Cloud Gateway Rejects MVC: DeferredImportSelector & Conditional Auto-Configuration

This article explains why Spring Cloud Gateway cannot coexist with Spring MVC due to fundamental model differences, and details how Spring Boot's DeferredImportSelector and conditional annotations enable intelligent auto-configuration by evaluating classpath, beans, and environment at runtime.

Auto-configurationConditional AnnotationsDeferredImportSelector
0 likes · 21 min read
Why Spring Cloud Gateway Rejects MVC: DeferredImportSelector & Conditional Auto-Configuration
Java Tech Workshop
Java Tech Workshop
Sep 4, 2026 · Backend Development

CompleteFuture vs CompletableFuture: Why Netty Built Its Own Future System

This article analyzes Netty's custom Future system, contrasting CompleteFuture (pre-completed results) with JDK's CompletableFuture (composable async tasks), and explains six architectural reasons Netty retains its own Future—including EventLoop thread binding, deadlock detection, lightweight completed futures, Channel binding, and ecosystem compatibility—with a deep dive into DefaultPromise's CAS-based implementation.

Asynchronous ProgrammingCompletableFutureCompleteFuture
0 likes · 27 min read
CompleteFuture vs CompletableFuture: Why Netty Built Its Own Future System
Java Tech Workshop
Java Tech Workshop
Sep 3, 2026 · Backend Development

Why Adding a Method Breaks Java Deserialization: The Implicit serialVersionUID Trap

This article explains how Java's implicit serialVersionUID causes deserialization failures when class structure changes, details how the JVM calculates it, shows source-level version checking in ObjectStreamClass, lists compatible and incompatible changes, and covers custom serialization mechanisms like transient, writeObject/readObject, and Externalizable.

Backward CompatibilityInvalidClassExceptionJVM
0 likes · 20 min read
Why Adding a Method Breaks Java Deserialization: The Implicit serialVersionUID Trap
Java Tech Workshop
Java Tech Workshop
Aug 31, 2026 · Backend Development

Add a Dependency and It Just Works: One‑Line Spring Boot Starter Auto‑Configuration

This article explains why adding a Spring Boot starter dependency instantly creates the required beans without XML or manual configuration, walks through the auto‑configuration mechanism—including @EnableAutoConfiguration, AutoConfigurationImportSelector, and conditional annotations—and shows step‑by‑step how to build a custom starter from scratch with Maven, configuration properties, an aspect, and registration files.

Auto-configurationConditional AnnotationsJava
0 likes · 21 min read
Add a Dependency and It Just Works: One‑Line Spring Boot Starter Auto‑Configuration
Java Tech Workshop
Java Tech Workshop
Aug 30, 2026 · Backend Development

Why Spring Needs a Three‑Level Cache for Circular Dependencies (Two Levels Lose AOP Proxies)

Spring resolves singleton circular dependencies by using a three‑level cache—singletonObjects, earlySingletonObjects, and singletonFactories—to expose early bean references and generate AOP proxies on demand, avoiding the loss of proxies that occurs with a two‑level cache while preserving performance.

AOP ProxyBackendBean Lifecycle
0 likes · 19 min read
Why Spring Needs a Three‑Level Cache for Circular Dependencies (Two Levels Lose AOP Proxies)