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.

178
Articles
0
Likes
1.4k
Views
0
Comments
Recent Articles

Latest from Java Tech Workshop

100 recent articles max
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 QueueJava Concurrency
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.

InvalidClassExceptionJVMJava
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 ProxyBean LifecycleSpring
0 likes · 19 min read
Why Spring Needs a Three‑Level Cache for Circular Dependencies (Two Levels Lose AOP Proxies)
Java Tech Workshop
Java Tech Workshop
Aug 29, 2026 · Backend Development

When a ThreadPool Queue Is Full: How ThreadPoolExecutor Expands and Handles Rejection

The article explains the exact order in which ThreadPoolExecutor expands—core threads, queueing, non‑core threads, then rejection—illustrates the behavior with a runnable example, compares the four built‑in RejectedExecutionHandler strategies, debunks common misconceptions, and offers production‑grade configuration and monitoring best practices.

Java ConcurrencyPerformance TuningThread Pool
0 likes · 24 min read
When a ThreadPool Queue Is Full: How ThreadPoolExecutor Expands and Handles Rejection
Java Tech Workshop
Java Tech Workshop
Aug 21, 2026 · Backend Development

SpringBoot Core Annotations: @ControllerAdvice, @RestControllerAdvice, @Validated

SpringBoot developers often misuse @ControllerAdvice, @RestControllerAdvice, and @Validated, leading to uncaught exceptions, ambiguous responses, and validation errors; this article explains each annotation’s underlying mechanism, proper usage for global exception handling, data binding, request preprocessing, and group‑based validation, and provides production‑ready code examples.

ControllerAdviceException HandlingRestControllerAdvice
0 likes · 20 min read
SpringBoot Core Annotations: @ControllerAdvice, @RestControllerAdvice, @Validated