Tagged articles

Java

5000 articles · Page 5 of 50
Coder Trainee
Coder Trainee
Jul 6, 2026 · Backend Development

Deep Dive into Java Concurrency: Practical ReentrantLock and Condition Usage

This article thoroughly compares Java's synchronized keyword with ReentrantLock, explains lock implementation details, fairness, interruptibility, timeout, and Condition usage, provides practical code examples and interview tips, and offers guidance on when to choose each synchronization mechanism.

AQSConditionJava
0 likes · 8 min read
Deep Dive into Java Concurrency: Practical ReentrantLock and Condition Usage
Java Architect Handbook
Java Architect Handbook
Jul 6, 2026 · Cloud Native

Why We Dropped Nacos for Apollo: A Hands‑On Guide to Configuration Management

This article explains why the team replaced Nacos with Ctrip's open‑source Apollo configuration center, outlines Apollo's core concepts, features, and architecture, and provides step‑by‑step instructions for creating projects, testing dynamic updates, exploring environments, clusters, namespaces, and deploying a SpringBoot application on Kubernetes.

Configuration CenterJavaKubernetes
0 likes · 28 min read
Why We Dropped Nacos for Apollo: A Hands‑On Guide to Configuration Management
CodeOnCode
CodeOnCode
Jul 6, 2026 · Backend Development

Big‑Sale Load Test: Why You Shouldn't Rush to Tune JVM Parameters

During a major sales promotion, a sudden P99 latency jump can tempt teams to tweak JVM settings, but this article shows how to build a three‑layer evidence chain—GC logs, JFR, business and container metrics—to confirm whether the JVM is truly at fault before making any parameter changes.

Big SaleGCJFR
0 likes · 16 min read
Big‑Sale Load Test: Why You Shouldn't Rush to Tune JVM Parameters
Spring Full-Stack Practical Cases
Spring Full-Stack Practical Cases
Jul 6, 2026 · Backend Development

Design and Implement a Production‑Ready Spring Boot Webhook Callback System

This article walks through building a production‑grade webhook system with Spring Boot 3.5, covering webhook fundamentals, a decoupled event‑driven architecture, database schema, entity and repository definitions, a dispatcher service with HMAC signing, exponential‑backoff retry, asynchronous execution, and dead‑letter handling.

HMACJavaRetry
0 likes · 15 min read
Design and Implement a Production‑Ready Spring Boot Webhook Callback System
Coder Trainee
Coder Trainee
Jul 5, 2026 · Fundamentals

Deep Dive into Java Concurrency: Inside the AQS Source Code (Part 4)

This article provides a thorough technical walkthrough of Java's AbstractQueuedSynchronizer, covering its core state and CLH queue structures, exclusive and shared lock acquisition/release processes, Condition implementation, and interview-ready explanations of its underlying mechanisms.

AQSAbstractQueuedSynchronizerCondition
0 likes · 8 min read
Deep Dive into Java Concurrency: Inside the AQS Source Code (Part 4)
IT Services Circle
IT Services Circle
Jul 5, 2026 · Backend Development

Eliminate if…else Hell with the Lightweight Easy Rules Engine

The article examines the drawbacks of deep if…else chains in Java business logic and introduces Easy Rules, a lightweight, annotation‑based rule engine that separates rules from code, improves readability, maintainability, testability, and supports multiple definition styles.

BackendEasy RulesJava
0 likes · 19 min read
Eliminate if…else Hell with the Lightweight Easy Rules Engine
Niu Liu
Niu Liu
Jul 5, 2026 · Databases

DSP’s Shift from Single‑Node to Distributed: A Deep Look at Its gRPC Cluster Architecture

The article dissects DSP’s transition from a single‑node database to a distributed system, detailing the gRPC‑based cluster communication skeleton built in dsp‑raft and dsp‑register, the three node roles, GrpcServer/GrpcClient abstractions, proto services, the registration workflow, and the missing heartbeat, node‑discovery and Raft consensus components that must be added for a full‑featured distributed storage engine.

JavaRaftcluster communication
0 likes · 12 min read
DSP’s Shift from Single‑Node to Distributed: A Deep Look at Its gRPC Cluster Architecture
Niu Liu
Niu Liu
Jul 5, 2026 · Databases

How to Build a MySQL Protocol Server from Scratch for the DSP Database

This article walks through the complete implementation of a MySQL‑compatible front‑end protocol in the DSP (Sloth) database, covering why MySQL compatibility matters, Netty pipeline design, packet framing, three‑step handshake, two‑level command routing, result‑set encoding, length‑encoded integers, variable substitution, and current limitations.

DSP DatabaseJavaLengthEncodedInteger
0 likes · 10 min read
How to Build a MySQL Protocol Server from Scratch for the DSP Database
java1234
java1234
Jul 5, 2026 · Artificial Intelligence

9 Practical Tips for Efficient Spring AI 2.0 Agent Development

The article shares nine hands‑on tips for building Spring AI 2.0 agents—including using ChatClient as the entry point, delegating tool calls to ToolCallingAdvisor, defining tools with @Tool, crafting effective system prompts, leveraging Advisor chains, streaming responses early, managing conversation memory, limiting tool count, and adding observability—each illustrated with concrete code snippets.

AgentChatClientJava
0 likes · 12 min read
9 Practical Tips for Efficient Spring AI 2.0 Agent Development
Java Tech Workshop
Java Tech Workshop
Jul 5, 2026 · Backend Development

How to Elegantly Bind Custom Configuration Parameters with @ConfigurationProperties

This article explains why using @Value for configuration leads to scattered, unvalidated settings and demonstrates how Spring Boot's @ConfigurationProperties provides batch binding, nested object support, built‑in validation, default values, and starter integration for clean, maintainable configuration management.

@ConfigurationPropertiesBackendJava
0 likes · 18 min read
How to Elegantly Bind Custom Configuration Parameters with @ConfigurationProperties
Coder Trainee
Coder Trainee
Jul 4, 2026 · Fundamentals

Deep Dive into Java Concurrency (Part 3): The Low‑Level Mechanics of volatile and CAS

This article explains Java's volatile and CAS primitives, detailing volatile's visibility and ordering guarantees, the memory barriers the JVM inserts, CAS's atomic compare‑and‑swap operation, common pitfalls like the ABA problem, and how their combination enables lock‑free thread safety, with code examples and interview tips.

CASHappens-BeforeJava
0 likes · 9 min read
Deep Dive into Java Concurrency (Part 3): The Low‑Level Mechanics of volatile and CAS
samdeepthink
samdeepthink
Jul 4, 2026 · Backend Development

How MyBatis Locates Mapper SQL: A Full Call‑Chain Trace

The article explains MyBatis’s three‑stage process—building an in‑memory mapping dictionary at startup, using JDK dynamic proxies to bind interface methods to that dictionary, and the runtime execution flow that translates a mapper call into JDBC operations, highlighting design choices such as builder chains, pre‑loading, and composition over inheritance.

JavaMyBatisORM
0 likes · 10 min read
How MyBatis Locates Mapper SQL: A Full Call‑Chain Trace
Java Tech Enthusiast
Java Tech Enthusiast
Jul 4, 2026 · Backend Development

New CTO Bans java.util.Date Usage—Why Ignoring It Can Get You Fired

The article explains the fundamental design flaws of java.util.Date—misleading name, mutability, non‑finality, timezone quirks, and legacy numbering—why a CTO may forbid its use, and provides a step‑by‑step guide to replace it with java.time classes such as Instant, LocalDateTime and ZonedDateTime.

BackendJavadate-time
0 likes · 12 min read
New CTO Bans java.util.Date Usage—Why Ignoring It Can Get You Fired
Three Knives
Three Knives
Jul 4, 2026 · Backend Development

Why Faster Java Frameworks Lose to Spring: The Economics of User Experience

The article explains that despite superior startup speed and lower memory usage, alternatives to Spring such as Vert.x, Quarkus, and Micronaut fail to displace it because developers prioritize familiar APIs, easy debugging, and a rich ecosystem, while the new Feat project demonstrates a way to keep Spring's developer experience and still achieve dramatic performance gains.

FeatJavaPerformance
0 likes · 9 min read
Why Faster Java Frameworks Lose to Spring: The Economics of User Experience
Coder Trainee
Coder Trainee
Jul 4, 2026 · Backend Development

Deep Dive into Java Concurrency: The Source-Level Mechanics of synchronized

This article thoroughly examines Java's synchronized keyword, covering its three usage forms, the underlying bytecode instructions, how lock information is stored in the object header's Mark Word, the step‑by‑step lock upgrade process from no‑lock to heavyweight, and JVM optimizations such as lock elimination and coarsening, providing interview‑ready explanations.

JVMJavaLock
0 likes · 10 min read
Deep Dive into Java Concurrency: The Source-Level Mechanics of synchronized
Lisa Notes
Lisa Notes
Jul 4, 2026 · Fundamentals

Using Interfaces as Types in Java: A Beginner’s Guide

This note explains how Java interfaces define new data types, how variables of an interface type must reference objects implementing that interface, and demonstrates the concept with a concrete example that casts objects to a Compare interface to select the larger one.

CastingJavaOOP
0 likes · 3 min read
Using Interfaces as Types in Java: A Beginner’s Guide
Java Tech Workshop
Java Tech Workshop
Jul 4, 2026 · Backend Development

Why Spring Chooses Its Own SPI Over Java’s Native ServiceLoader

The article compares Java’s native SPI with Spring’s custom SPI, explains the fundamental flaws of ServiceLoader, details SpringFactoriesLoader’s lazy loading and conditional filtering, and shows why SpringBoot auto‑configuration relies entirely on its own SPI mechanism.

AutoConfigurationJavaSPI
0 likes · 13 min read
Why Spring Chooses Its Own SPI Over Java’s Native ServiceLoader
Tinker Programmer
Tinker Programmer
Jul 3, 2026 · Backend Development

How Aggregate Roots Guard Business Invariants – The Final Defense Line

The article examines a payroll bug caused by exposing internal collections, then explains three immutable‑focused rules for aggregate roots—expose only through the root, keep each transaction to a single aggregate, and reference other aggregates by ID only—showing how proper design prevents consistency errors, performance loss, and concurrency conflicts in Spring Boot applications.

@TransactionalAggregate RootDomain Events
0 likes · 17 min read
How Aggregate Roots Guard Business Invariants – The Final Defense Line
Java Tech Enthusiast
Java Tech Enthusiast
Jul 3, 2026 · Backend Development

Why RediSearch Can Outperform Elasticsearch: Low Memory, High Speed

The article introduces Redis's official search module RediSearch, compares its memory usage and query performance against Elasticsearch, presents benchmark results showing faster indexing and four‑times higher throughput, and provides step‑by‑step installation, index commands, and Java integration examples.

ElasticsearchJavaJedis
0 likes · 10 min read
Why RediSearch Can Outperform Elasticsearch: Low Memory, High Speed
samdeepthink
samdeepthink
Jul 3, 2026 · Backend Development

MyBatis-Flex vs MyBatis-Plus: A Detailed Source‑Code and Feature Comparison

This article walks through a side‑by‑side examination of MyBatis‑Flex and MyBatis‑Plus, covering entity annotations, query construction, pagination, architectural differences, APT‑generated code, multi‑table joins, partial updates, and the trade‑offs of each design, helping developers choose the right ORM for their projects.

JavaMulti-table joinMyBatis-Flex
0 likes · 16 min read
MyBatis-Flex vs MyBatis-Plus: A Detailed Source‑Code and Feature Comparison
Coder Trainee
Coder Trainee
Jul 3, 2026 · Fundamentals

Deep Dive into Java Concurrency Part 1: Understanding the Core via JMM

This article launches a new series on Java concurrency, explaining why concurrent programming is hard due to hardware, OS and compiler effects, detailing the Java Memory Model’s happens‑before rules, memory barriers, volatile semantics, and comparing volatile with synchronized, plus a practical double‑checked locking example.

Happens-BeforeJavaMemory Barriers
0 likes · 8 min read
Deep Dive into Java Concurrency Part 1: Understanding the Core via JMM
Lisa Notes
Lisa Notes
Jul 3, 2026 · Fundamentals

Java Interface Implementation: A Step‑by‑Step Tutorial from Scratch

This tutorial walks through Java interface basics, showing how to declare an interface, implement it in classes, handle method and constant conflicts when implementing multiple interfaces, and demonstrates the concepts with concrete Rectangle and Circle examples.

Code ExampleJavaOOP
0 likes · 10 min read
Java Interface Implementation: A Step‑by‑Step Tutorial from Scratch
Spring Full-Stack Practical Cases
Spring Full-Stack Practical Cases
Jul 3, 2026 · Backend Development

7 Ways to Add a Unified Prefix to Spring Boot Controllers

This article explains why a common API prefix (e.g., /api/v1) is useful in microservice or front‑back separation projects and demonstrates seven practical techniques—custom DispatcherServlet registration, YAML configuration, SpEL‑based @RequestMapping, custom composed annotation, WebMvcConfigurer addPathPrefix, internal forwarding, Spring Cloud Gateway ProxyExchange, and Nginx reverse proxy—using Spring Boot 3.5.0 examples and code snippets.

ControllerJavaNginx
0 likes · 8 min read
7 Ways to Add a Unified Prefix to Spring Boot Controllers
The Dominant Programmer
The Dominant Programmer
Jul 2, 2026 · Backend Development

Understanding Redisson from Scratch: A Java Distributed Toolbox Guide and Hands‑On

This article introduces Redisson, a Redis‑based Java client that wraps Redis commands into familiar Java concurrency primitives, compares it with Jedis and Lettuce, explains why custom distributed locks are error‑prone, and provides step‑by‑step code for configuring, using, and integrating its core features such as locks, maps, queues, and rate limiters in Spring Boot.

JavaRate LimiterRedis
0 likes · 16 min read
Understanding Redisson from Scratch: A Java Distributed Toolbox Guide and Hands‑On
liandk
liandk
Jul 2, 2026 · Fundamentals

Iterator Pattern Explained: Real‑World Scenarios and Java Code

This article demystifies the Iterator design pattern by describing its purpose of separating collection storage from traversal, illustrating everyday analogies, presenting a complete Java implementation—including interfaces, concrete aggregate, custom iterator, and test code—and summarizing typical applications, advantages, and drawbacks.

CollectionsDesign PatternsIterator
0 likes · 5 min read
Iterator Pattern Explained: Real‑World Scenarios and Java Code
Su San Talks Tech
Su San Talks Tech
Jul 2, 2026 · Backend Development

Replace if…else with a Lightweight Rule Engine: Introducing Easy Rules

The article explains why deep nesting of if…else statements harms readability, maintainability and testability, and shows how the Java Easy Rules engine can extract business logic into reusable rule objects with multiple definition styles, lightweight architecture, and integration options.

Backend DevelopmentComposite RulesEasy Rules
0 likes · 18 min read
Replace if…else with a Lightweight Rule Engine: Introducing Easy Rules
Cloud Architecture
Cloud Architecture
Jul 1, 2026 · Backend Development

8 Asynchronous Programming Techniques: From Thread Pools and MQ to Virtual Threads

The article examines eight practical ways to implement asynchronous programming—thread pools, CompletableFuture, Spring @Async, message queues, event‑driven architecture, reactive streams, the Actor model, and coroutines/virtual threads—explaining their core mechanisms, trade‑offs, production‑grade configurations, and when each should be chosen.

Asynchronous ProgrammingJavaSpring
0 likes · 53 min read
8 Asynchronous Programming Techniques: From Thread Pools and MQ to Virtual Threads
21CTO
21CTO
Jul 1, 2026 · Industry Insights

Why Oracle Is Dropping Java Updates for Intel Macs After JDK 27

Oracle announced that starting with JDK 27 it will cease maintaining the macOS/x64 Java runtime, citing Apple Silicon dominance and engineering costs, and the article examines the broader ecosystem shift, enterprise impact, and mitigation options for developers still on Intel Macs.

Apple SiliconIntel MacJDK
0 likes · 7 min read
Why Oracle Is Dropping Java Updates for Intel Macs After JDK 27
Spring Full-Stack Practical Cases
Spring Full-Stack Practical Cases
Jul 1, 2026 · Artificial Intelligence

How to Add Claude Code’s Auto‑Memory Mechanism to Spring AI

This article explains how to integrate Claude Code’s auto‑memory mechanism into Spring AI by using AutoMemoryTools and AutoMemoryToolsAdvisor, compares three integration options, shows the request workflow, memory file formats, and provides concrete code snippets and consolidation strategies for persistent, typed long‑term memory.

Auto MemoryChat MemoryClaude Code
0 likes · 12 min read
How to Add Claude Code’s Auto‑Memory Mechanism to Spring AI
Code Ape Tech Column
Code Ape Tech Column
Jul 1, 2026 · Backend Development

How Spring Integration Simplifies Inter‑Service Messaging

This article explains Spring Integration’s core concepts—messages, channels, endpoints, adapters, filters, and transformers—shows how to configure them with XML or Java, compares the framework to traditional middleware, and provides a complete e‑commerce order‑processing example with code snippets and interceptor techniques.

Design PatternsInterceptorsJava
0 likes · 20 min read
How Spring Integration Simplifies Inter‑Service Messaging
liandk
liandk
Jul 1, 2026 · Fundamentals

Interpreter Pattern Explained with Java Code and Real-World Scenarios

This article introduces the Interpreter design pattern, explains its core concept of splitting custom syntax into expression objects, showcases practical Java implementations for arithmetic, and outlines typical use cases such as calculators, rule engines, and low‑code platforms while discussing its advantages and drawbacks.

Design PatternsExpression EvaluationJava
0 likes · 5 min read
Interpreter Pattern Explained with Java Code and Real-World Scenarios
Java Backend Technology
Java Backend Technology
Jul 1, 2026 · Artificial Intelligence

LangChain4j vs LangGraph4j: Which Java AI Framework Should You Choose?

This article compares LangChain4j and LangGraph4j, explaining their roles as an AI capability‑access layer and a workflow‑orchestration layer respectively, detailing core features, design philosophies, code examples, strengths, limitations, version updates, and practical scenarios to help Java developers decide which tool fits their needs.

AI AgentsJavaLangChain4j
0 likes · 20 min read
LangChain4j vs LangGraph4j: Which Java AI Framework Should You Choose?
Lisa Notes
Lisa Notes
Jul 1, 2026 · Fundamentals

Java Interfaces from Scratch: Core Concepts and Practical Use

This note explains how interfaces act as contracts in collaborative Java projects, covering everyday analogies, definition, syntax, implementation requirements, API role, and how multiple interfaces provide a form of multiple inheritance.

APIJavaMultiple Inheritance
0 likes · 5 min read
Java Interfaces from Scratch: Core Concepts and Practical Use
Niu Liu
Niu Liu
Jul 1, 2026 · Backend Development

E‑commerce Pricing Engine Architecture: Promotion Calculation Using Aviator Rule Engine

This article details the design of an e‑commerce pricing engine that processes shopping‑cart items and multiple promotional activities through a three‑stage workflow, copy‑on‑trial execution, configurable Aviator rule chains, and a two‑phase discount sharing algorithm, with code examples and engineering considerations.

AviatorBackendDesign Patterns
0 likes · 11 min read
E‑commerce Pricing Engine Architecture: Promotion Calculation Using Aviator Rule Engine
Java Architecture Diary
Java Architecture Diary
Jul 1, 2026 · Artificial Intelligence

Spring AI Overhauls Memory: Replacing ChatMemory with Session

Spring AI’s new Session model replaces the fragile sliding‑window ChatMemory, introducing immutable Session metadata, event‑based Turn grouping, configurable compaction triggers and strategies, multi‑agent Branch isolation, and a JDBC‑backed repository to reliably handle long‑running tool‑calling agents.

AgentChatMemoryJava
0 likes · 10 min read
Spring AI Overhauls Memory: Replacing ChatMemory with Session
Tinker Programmer
Tinker Programmer
Jun 30, 2026 · Fundamentals

Stop Using HashSet: Optimize LeetCode #3 Sliding Window from 8 ms to 2 ms

This article dissects the classic LeetCode #3 longest‑substring‑without‑repeating‑characters problem, shows why a HashSet‑based solution incurs heavy boxing overhead, and walks through three progressive optimizations—using a boolean array, index‑jumping with an int array, and refined update timing—to shrink runtime from 8 ms to about 2 ms, while highlighting common pitfalls and best‑practice guidelines.

HashSetJavaLeetCode
0 likes · 12 min read
Stop Using HashSet: Optimize LeetCode #3 Sliding Window from 8 ms to 2 ms
Java Tech Enthusiast
Java Tech Enthusiast
Jun 30, 2026 · Backend Development

Spring Boot 4.1.0 Released: Official gRPC Support Boosts Java Microservices

Spring Boot 4.1.0 introduces official gRPC support, unified Jackson configuration, HTTP client SSRF protection, enhanced observability with OpenTelemetry, and flexible Log4j file‑rotation strategies, while the roadmap confirms a one‑year lifecycle for each version and signals the shift to the 4.x era for Java microservices.

JacksonJavaSSRF
0 likes · 8 min read
Spring Boot 4.1.0 Released: Official gRPC Support Boosts Java Microservices
Java Architect Handbook
Java Architect Handbook
Jun 30, 2026 · Backend Development

12 MyBatis‑Plus Tricks That Instantly Boost Development Efficiency

This article presents twelve practical MyBatis‑Plus techniques—including avoiding isNull checks, selecting specific fields, batch operations, EXISTS subqueries, safe ordering, LambdaQuery type safety, between clauses, index‑aware sorting, pagination limits, null‑handling, performance tracking, enum mapping, logical deletion, optimistic locking, and increment/decrement methods—to help developers write cleaner, faster, and more maintainable Java code.

Batch OperationsJavaLambdaQueryWrapper
0 likes · 18 min read
12 MyBatis‑Plus Tricks That Instantly Boost Development Efficiency
Lisa Notes
Lisa Notes
Jun 30, 2026 · Fundamentals

Java Basics: User Login Validation and Sensitive Word Filtering Examples

This tutorial walks through two Java examples—a simple user login verification program and a basic sensitive‑word filtering utility—explaining the problem setup, code logic, and sample outputs to illustrate input validation and string processing techniques.

JavaProgramming TutorialSensitive Word Filtering
0 likes · 8 min read
Java Basics: User Login Validation and Sensitive Word Filtering Examples
liandk
liandk
Jun 30, 2026 · Fundamentals

Command Pattern Explained: Theory, Java Code, and Real‑World Scenarios

This article introduces the Command pattern, describing how encapsulating each action as a command object decouples callers from executors, and demonstrates its use through real‑world examples like remote controls and editors, followed by a complete Java implementation, common business scenarios, and a brief pros‑cons analysis.

Command PatternDesign PatternsInvoker
0 likes · 5 min read
Command Pattern Explained: Theory, Java Code, and Real‑World Scenarios
Su San Talks Tech
Su San Talks Tech
Jun 30, 2026 · Artificial Intelligence

LangChain4j vs LangGraph4j: Which Java AI Framework Fits Your Needs?

This article compares LangChain4j and LangGraph4j, explaining that the former is an AI capability integration layer for Java while the latter is a state‑graph workflow engine, and guides developers on when to use each based on features such as model access, tool calling, multi‑agent orchestration, conditional routing, checkpointing, and version maturity.

AI AgentsJavaLangChain4j
0 likes · 19 min read
LangChain4j vs LangGraph4j: Which Java AI Framework Fits Your Needs?
Spring Full-Stack Practical Cases
Spring Full-Stack Practical Cases
Jun 30, 2026 · Backend Development

Zero‑Intrusion Dynamic Enhancements for Spring Boot RestClient

The article explains how to eliminate boilerplate when using Spring Boot 3.5.0 RestClient by introducing two custom annotations, @ClientEnhance and @ClientConfig, together with an auto‑configuration class that injects logging interceptors and configurable timeouts into selected RestClient.Builder beans, enabling a non‑intrusive, declarative enhancement.

AutoConfigurationCustom AnnotationJava
0 likes · 8 min read
Zero‑Intrusion Dynamic Enhancements for Spring Boot RestClient
Coder Life Journal
Coder Life Journal
Jun 29, 2026 · Backend Development

Lombok @Data: Handy Shortcut with Hidden Pitfalls and Key Technical Details

The article explains what Lombok’s @Data annotation expands to, warns that its default @EqualsAndHashCode callSuper is false causing equals/hashCode to ignore superclass fields, discusses the need to manually declare serialVersionUID for Serializable classes, and recommends using @Getter/@Setter with explicit @EqualsAndHashCode when inheritance is involved.

JavaLombokdata
0 likes · 5 min read
Lombok @Data: Handy Shortcut with Hidden Pitfalls and Key Technical Details
Coder Trainee
Coder Trainee
Jun 29, 2026 · Backend Development

Java Performance Tuning in Practice (Part 6): End-to-End Case Study from Full GC to 200 ms Response

The article walks through a real e‑commerce order service where afternoon spikes caused response times to jump to 2‑3 seconds, Full GC to run every few minutes, and Metaspace to hit 99.9%, then demonstrates step‑by‑step analysis using monitoring, GC logs, jstat, jmap, and heap dumps, fixes a custom class‑loader leak, adjusts JVM flags, and achieves sub‑200 ms latency with no Full GC.

Classloader LeakGCJVM
0 likes · 8 min read
Java Performance Tuning in Practice (Part 6): End-to-End Case Study from Full GC to 200 ms Response
Lisa Notes
Lisa Notes
Jun 29, 2026 · Fundamentals

Java Basics: Using StringBuilder for Efficient Mutable Strings

The article explains why Java's immutable String class can waste memory when concatenated, introduces the mutable StringBuilder class introduced in J2SE 5.0, demonstrates its usage with code examples comparing memory behavior, shows its length and capacity methods, and illustrates practical operations such as reverse and conversion between String and StringBuilder.

CodeExampleJavaMemoryManagement
0 likes · 7 min read
Java Basics: Using StringBuilder for Efficient Mutable Strings
Java Backend Technology
Java Backend Technology
Jun 29, 2026 · Backend Development

When AI Generates Code, How to Eliminate Zombie Dependencies with Maven

The article explains why modern Java projects must treat Maven dependency management as essential, shows how transitive vulnerable dependencies and unused "zombie" libraries bloat builds, and provides concrete Maven‑dependency‑plugin commands to visualize, analyze, and clean the dependency tree, improving security and build speed.

CI/CDJavaMaven
0 likes · 9 min read
When AI Generates Code, How to Eliminate Zombie Dependencies with Maven
Java Baker
Java Baker
Jun 29, 2026 · Backend Development

How to Diagnose Uneven CPU Usage in Java Services Using Kafka

This article walks through the symptoms, root cause analysis, and step‑by‑step solutions for uneven CPU usage across Java service instances, highlighting how mismatched Kafka partition counts and thread or GC issues can lead to load imbalance and how to resolve them.

CPUJavaKafka
0 likes · 8 min read
How to Diagnose Uneven CPU Usage in Java Services Using Kafka
Coder Trainee
Coder Trainee
Jun 28, 2026 · Fundamentals

Java Performance Tuning Part 5: Hands‑On GC Optimization from G1 to ZGC

This article walks through Java GC tuning by defining low‑latency and high‑throughput goals, comparing major collectors, presenting G1 and ZGC configuration examples, and demonstrating a real‑world payment system case where pause times were reduced from 150‑200 ms to under 50 ms.

G1GCJVM
0 likes · 8 min read
Java Performance Tuning Part 5: Hands‑On GC Optimization from G1 to ZGC
Tinker Programmer
Tinker Programmer
Jun 28, 2026 · Backend Development

Why Ubiquitous Language Belongs in Code, Not Just Meetings

The article shows how mismatched business and code vocabularies cause confusion, then guides readers through building a shared glossary, renaming domain objects and types in Java, and enforcing the conventions with a code‑review checklist to keep the ubiquitous language alive in the codebase.

Domain-Driven DesignGlossaryJava
0 likes · 11 min read
Why Ubiquitous Language Belongs in Code, Not Just Meetings
Coder Trainee
Coder Trainee
Jun 27, 2026 · Backend Development

Mastering Java Thread‑Pool Tuning: Practical Performance Tips

This article explains why Java thread pools need tuning, walks through the seven core ThreadPoolExecutor parameters, provides formula‑based sizing, offers configuration templates for different workloads, shows monitoring and dynamic adjustment techniques, and highlights common pitfalls with concrete code examples.

JavaSpringThreadPoolExecutor
0 likes · 8 min read
Mastering Java Thread‑Pool Tuning: Practical Performance Tips
LuTiao Programming
LuTiao Programming
Jun 27, 2026 · Artificial Intelligence

Microsoft's MAI-Code-1-Flash Arrives in IntelliJ, Prompting Java Teams to Ditch the One‑Model‑Fits‑All Approach

Microsoft's new MAI‑Code‑1‑Flash model is now available in IntelliJ, signaling a shift for Java developers from using a single, heavyweight AI model for all tasks to selecting fast, task‑specific models that improve iteration speed, reduce costs, and better match the risk profile of each coding activity.

AI codingAgent WorkflowCopilot
0 likes · 19 min read
Microsoft's MAI-Code-1-Flash Arrives in IntelliJ, Prompting Java Teams to Ditch the One‑Model‑Fits‑All Approach
Tinker Programmer
Tinker Programmer
Jun 27, 2026 · Backend Development

What Real Problem Does DDD Solve? Cutting Through the Confusing Concepts

The article explains why traditional three‑layer architectures let business logic bloat inside services, demonstrates the pitfalls of anemic domain models with a 7,000‑line SalaryService example, and shows how DDD’s rich domain model restores rule ownership and maintainability.

Anemic Domain ModelDomain-Driven DesignJava
0 likes · 10 min read
What Real Problem Does DDD Solve? Cutting Through the Confusing Concepts
macrozheng
macrozheng
Jun 27, 2026 · Backend Development

Boost IntelliJ IDEA Performance: 10 Simple Tweaks to Eliminate Lag

This article lists ten common IntelliJ IDEA pitfalls—slow performance, Lombok errors, broken breakpoints, encoding issues, unwanted Git files, Maven download slowness, class‑not‑found errors, broken shortcuts, MySQL timezone problems, and automatic reformatting—plus step‑by‑step solutions to make the IDE run smoothly for Java developers.

GitIDE performanceIntelliJ IDEA
0 likes · 25 min read
Boost IntelliJ IDEA Performance: 10 Simple Tweaks to Eliminate Lag
Spring Full-Stack Practical Cases
Spring Full-Stack Practical Cases
Jun 27, 2026 · Backend Development

Stop Building Code “Shit Mountains” – 10 Java Clean‑Code Techniques

This article presents ten practical Java clean‑code techniques—from meaningful naming and single‑purpose methods to avoiding magic numbers, writing purposeful comments, proper logging, defensive programming, DTO separation, Stream API usage, Optional handling, and safe ThreadPoolExecutor configuration—each illustrated with concrete code examples and explanations.

DTOJavaOptional
0 likes · 12 min read
Stop Building Code “Shit Mountains” – 10 Java Clean‑Code Techniques
Lisa Notes
Lisa Notes
Jun 27, 2026 · Fundamentals

How to Create, Manipulate, and Compare Java Strings Effectively

This article explains Java's immutable String class, covering three ways to instantiate strings, methods for length, concatenation (concat and +), character access, substring extraction, splitting, replacing, searching, and comparison using equals versus ==, with concrete code examples and key rules for each operation.

ImmutableJavaString
0 likes · 12 min read
How to Create, Manipulate, and Compare Java Strings Effectively
Java Tech Workshop
Java Tech Workshop
Jun 27, 2026 · Backend Development

Why Do final, static, and private Methods Escape Spring AOP Proxying?

The article explains that Spring AOP cannot intercept methods marked as private, static, or final because JDK dynamic proxies only work on public interface methods and CGLIB subclasses cannot override such methods, leading to static matching but dynamic execution failure, self‑invocation bypass, and complete loss of advice for these method types.

AOPCGLIBJDK Proxy
0 likes · 11 min read
Why Do final, static, and private Methods Escape Spring AOP Proxying?
Coder Trainee
Coder Trainee
Jun 26, 2026 · Backend Development

Java Performance Tuning: Practical Guide to Detecting and Fixing Memory Leaks

This article explains how to differentiate memory leaks from out‑of‑memory errors, identifies classic GC‑based leak signals, introduces a toolchain (jstat, jmap, MAT, Arthas, JProfiler), walks through a step‑by‑step investigation workflow, lists common leak patterns, presents a real‑world ThreadLocal leak case, and offers preventive measures such as monitoring, regular heap dumps, code review, and stress testing.

ArthasGCJava
0 likes · 9 min read
Java Performance Tuning: Practical Guide to Detecting and Fixing Memory Leaks
Three Knives
Three Knives
Jun 26, 2026 · Backend Development

The Three Fatal Flaws of the Servlet Spec That Pushed Spring to Dominance

The article examines three outdated provisions in the Servlet specification—full‑annotation scanning that slows startup, an overreaching security model, and a half‑baked async API—explaining how they hinder modern cloud‑native development and how Spring’s ecosystem has filled each gap, while also suggesting lightweight alternatives.

@AsyncCloud NativeJava
0 likes · 10 min read
The Three Fatal Flaws of the Servlet Spec That Pushed Spring to Dominance
ZhiKe AI
ZhiKe AI
Jun 26, 2026 · Backend Development

Mastering the 5 Java IO Models: From OS Fundamentals to epoll vs select

An interviewer's question about the difference between epoll and select reveals a tangled web of OS‑level IO mechanisms; this article unpacks user‑space vs kernel‑space, DMA, zero‑copy, buffering, and maps the five Java IO models (BIO, NIO, AIO, etc.) to their underlying system calls.

EpollIOJava
0 likes · 17 min read
Mastering the 5 Java IO Models: From OS Fundamentals to epoll vs select
liandk
liandk
Jun 25, 2026 · Fundamentals

Proxy Pattern Explained: Code Samples and Real‑World Scenarios

This article introduces the Proxy design pattern, explains its core purpose of controlling access without modifying original classes, illustrates everyday analogies, provides a complete Java static‑proxy implementation with interface, real subject, proxy and test code, and summarizes common use cases and distinctions from decorators.

AOPDesign PatternsJava
0 likes · 5 min read
Proxy Pattern Explained: Code Samples and Real‑World Scenarios
LuTiao Programming
LuTiao Programming
Jun 25, 2026 · Backend Development

GitHub Copilot’s New Deep‑Dive Java PR Review: Beyond a Quick Diff Glance

GitHub Copilot Code Review now uses grep, rg, glob and view to actively explore related files in Java pull requests, shifting AI code review from merely commenting on changed lines to investigating the broader impact on transactions, caches, messaging, database queries and system compatibility.

AI code reviewBackend DevelopmentGitHub Copilot
0 likes · 20 min read
GitHub Copilot’s New Deep‑Dive Java PR Review: Beyond a Quick Diff Glance
LuTiao Programming
LuTiao Programming
Jun 25, 2026 · Backend Development

JetBrains Junie Goes GA: AI Moves Beyond Code Generation to Control the Debugger

JetBrains has promoted its AI coding agent Junie from beta to general availability, expanding its capabilities from generating Java code to directly operating IntelliJ IDEA’s debugger, planning tasks, accessing project indexes, build configurations, tests, and databases, thereby shifting AI‑assisted troubleshooting from static code analysis to runtime evidence collection.

AI codingIntelliJ IDEAJava
0 likes · 20 min read
JetBrains Junie Goes GA: AI Moves Beyond Code Generation to Control the Debugger
Tinker Programmer
Tinker Programmer
Jun 25, 2026 · Interview Experience

Singleton Pattern: 6 Implementations, DCL Volatile Pitfall, Spring vs GoF

The article examines the evolution of six singleton implementations in Java, explains why the double‑checked locking pattern requires the volatile keyword to prevent instruction reordering bugs, compares Spring container‑managed singletons with classic GoF singletons, and highlights common pitfalls such as mutable state in singleton beans.

Design PatternJavaSpring
0 likes · 13 min read
Singleton Pattern: 6 Implementations, DCL Volatile Pitfall, Spring vs GoF
Coder Trainee
Coder Trainee
Jun 25, 2026 · Backend Development

Java Performance Tuning Part 1: Understanding the JVM Memory Model from a GC Log

This article launches a Java performance tuning series, explaining why GC logs are the starting point, reviewing the JVM memory model, showing how to enable and read GC logs, dissecting minor and full GC entries, comparing common GC algorithms, and introducing visualization tools to help pinpoint memory issues.

GCJVMJava
0 likes · 10 min read
Java Performance Tuning Part 1: Understanding the JVM Memory Model from a GC Log
Lisa Notes
Lisa Notes
Jun 25, 2026 · Fundamentals

Java Basics: Numbers, Characters, and String Handling – Day 53 Learning Notes

This tutorial walks through Java's core numeric and character utilities, covering number wrapper classes and autoboxing/unboxing, the Number hierarchy, formatted output with printf/format, DecimalFormat patterns, and the Math class’s constants and methods for arithmetic, logarithmic, trigonometric, and random number generation, all illustrated with concrete code examples.

AutoboxingDecimalFormatJava
0 likes · 15 min read
Java Basics: Numbers, Characters, and String Handling – Day 53 Learning Notes
Java Tech Workshop
Java Tech Workshop
Jun 25, 2026 · Backend Development

Mastering Spring AOP Pointcut Expressions: Precise execution and @annotation Matching Techniques

This article explains why many Spring AOP pointcuts fail, clarifies the execution and @annotation expressions, details wildcard usage, presents dozens of concrete pointcut examples, compares their granularity and performance, and offers best‑practice tips to avoid common pitfalls in real‑world Java projects.

JavaPointcutSpring AOP
0 likes · 15 min read
Mastering Spring AOP Pointcut Expressions: Precise execution and @annotation Matching Techniques
Linyb Geek Road
Linyb Geek Road
Jun 25, 2026 · Backend Development

8 Hard‑Earned Rules for Using Spring @Transactional Correctly

Drawing on a decade of production experience, the article presents eight concrete rules for Spring @Transactional—covering transaction duration, proxy limitations, rollback settings, exception handling, read‑only flags, method visibility, bean separation for retries, and logging—to prevent common bugs and ensure reliable database operations.

@TransactionalJavaSpring
0 likes · 12 min read
8 Hard‑Earned Rules for Using Spring @Transactional Correctly
liandk
liandk
Jun 24, 2026 · Fundamentals

Mastering the Facade Pattern: Clear Explanation, Real‑World Scenarios, and Java Code

This article explains the Facade design pattern, illustrates everyday and software scenarios such as hotel front desks and multimedia players, provides a complete Java implementation with subsystem classes, a facade class, and client code, and lists typical business use cases while warning against common misconceptions.

Design PatternsFacade PatternJava
0 likes · 5 min read
Mastering the Facade Pattern: Clear Explanation, Real‑World Scenarios, and Java Code
Tinker Programmer
Tinker Programmer
Jun 24, 2026 · Fundamentals

Master Strategy, Observer, and Chain of Responsibility with Spring & MQ examples

This article walks through the three core behavioral design patterns—Strategy, Observer, and Chain of Responsibility—explaining their intent, showing problematic anti‑patterns, providing step‑by‑step Spring and MQ code implementations, mapping them to real‑world frameworks, and offering interview‑style comparison questions to solidify understanding.

Chain of ResponsibilityDesign PatternsJava
0 likes · 19 min read
Master Strategy, Observer, and Chain of Responsibility with Spring & MQ examples
Lisa Notes
Lisa Notes
Jun 24, 2026 · Fundamentals

Why Use final Classes and Methods in Java: A Practical Guide

The article explains how the Java final keyword can be applied to classes and methods to prevent inheritance and overriding, provides syntax and concrete code examples—including a final class and a final method in a chess algorithm—and advises using final for safety in constructors.

FinalImmutabilityJava
0 likes · 5 min read
Why Use final Classes and Methods in Java: A Practical Guide
Java Tech Workshop
Java Tech Workshop
Jun 24, 2026 · Backend Development

Mastering Spring AOP: All Four Types of Advice Explained

Spring AOP provides five distinct advice types—@Before, @AfterReturning, @AfterThrowing, @After, and @Around—each with specific execution timing; this guide explains their purposes, execution order, common pitfalls, and offers a complete SpringBoot example with code, Maven setup, and logging demonstrations.

AOPBackendJava
0 likes · 13 min read
Mastering Spring AOP: All Four Types of Advice Explained
Shepherd Advanced Notes
Shepherd Advanced Notes
Jun 24, 2026 · Backend Development

Boosting Throughput 10×: Architecture Evolution and Tuning for High‑Concurrency Batch Processing

The article details how a sluggish batch‑processing system handling millions of records was redesigned with XXL‑JOB sharding, Redis‑based dynamic task distribution, cursor pagination, and selective transaction scopes, achieving nearly ten‑fold throughput improvement while addressing resource contention, load‑balancing, and reliable result reconciliation.

Batch ProcessingJavaMySQL
0 likes · 19 min read
Boosting Throughput 10×: Architecture Evolution and Tuning for High‑Concurrency Batch Processing
Spring Full-Stack Practical Cases
Spring Full-Stack Practical Cases
Jun 24, 2026 · Backend Development

Ditch Traditional JSON Parsing: Boost Spring Boot API Performance by 30×

A four‑month investigation revealed that Jackson’s default object‑mapper consumed over 60% of CPU time during order‑submission requests, causing 900 ms latency; switching to Jackson’s streaming API reduced average response time from 912 ms to 28 ms, cut GC pauses, and increased throughput eight‑fold, while introducing readability and validation trade‑offs.

JSON parsingJacksonJava
0 likes · 8 min read
Ditch Traditional JSON Parsing: Boost Spring Boot API Performance by 30×