Skip to content
LuTiao Programming
Author

LuTiao Programming

LuTiao Programming is a friendly community offering free programming lessons. We inspire learners to explore new ideas and technologies and quickly acquire job-ready skills.

243
Articles
0
Likes
1.8k
Views
0
Comments
Recent Articles

Latest from LuTiao Programming

100 recent articles max
LuTiao Programming
LuTiao Programming
Nov 14, 2026 · Backend Development

Java 27 LazyConstant: Fix 6s Startup Delay Caused by Eager static final Initialization

The author traces a 6-second Java service startup delay to eager initialization of large objects via static final fields, demonstrates how Java 27's LazyConstant API enables thread-safe, one-time lazy initialization with constant semantics, and explains when to use it versus Spring @Lazy, caches, or double-checked locking.

JEP 531Java 27Kubernetes scaling
0 likes · 19 min read
Java 27 LazyConstant: Fix 6s Startup Delay Caused by Eager static final Initialization
LuTiao Programming
LuTiao Programming
Nov 13, 2026 · Backend Development

Java 27 Structured Concurrency: Replacing CompletableFuture for Parallel Homepage Aggregation

The article demonstrates migrating a homepage aggregation API from CompletableFuture to Java 27's StructuredTaskScope, showing how structured concurrency simplifies parallel downstream calls by automatically managing task lifecycle, cancellation on failure, scope-level timeouts, virtual threads, and observability—reducing exception handling code by half while making concurrency semantics match business intent.

Backend DevelopmentCompletableFutureException Handling
0 likes · 17 min read
Java 27 Structured Concurrency: Replacing CompletableFuture for Parallel Homepage Aggregation
LuTiao Programming
LuTiao Programming
Nov 12, 2026 · Backend Development

SQL 300ms, API 12s: The Hidden Cost of Returning 100k Records to Frontend

A backend query interface took 12 seconds despite a 300ms SQL query because it returned 100,000 records directly to the frontend, causing massive object creation, JSON serialization, memory spikes, and GC pressure; the fix involved pagination, DTO projections, separate export endpoints, and monitoring response size.

Async ExportDTO ProjectionGC Pressure
0 likes · 18 min read
SQL 300ms, API 12s: The Hidden Cost of Returning 100k Records to Frontend
LuTiao Programming
LuTiao Programming
Nov 11, 2026 · Information Security

80MB ZIP Bomb Exhausts 20GB Disk: Secure Extraction Practices for Spring Boot

This article details how an 80MB ZIP bomb exhausted a 20GB disk in a Spring Boot service, explaining ZIP bomb mechanics, Zip Slip directory traversal, and providing secure extraction code with limits on total uncompressed size, per-file size, entry count, compression ratio, and path normalization.

Java securitySpring BootZIP bomb
0 likes · 23 min read
80MB ZIP Bomb Exhausts 20GB Disk: Secure Extraction Practices for Spring Boot
LuTiao Programming
LuTiao Programming
Nov 10, 2026 · Backend Development

Why Spring Boot's /tmp Fills Up Even When Streaming Files to MinIO

Spring Boot's multipart parser writes uploads to disk before your controller runs, filling /tmp during concurrent large files; the fix is direct browser-to-object-storage uploads via presigned URLs, plus temp directory isolation, concurrency limits, and content validation.

Backend DevelopmentFile UploadMinIO
0 likes · 16 min read
Why Spring Boot's /tmp Fills Up Even When Streaming Files to MinIO
LuTiao Programming
LuTiao Programming
Nov 9, 2026 · Backend Development

Stream.toMap() Duplicate Key Crash: Why the Common Fix Silently Loses Data

A duplicate phone number in a 5000-row Excel import caused Stream.toMap() to throw IllegalStateException; the typical merge-function fix silently discards data, so the article presents a robust validation pipeline using groupingBy, key normalization, batch database checks, and explicit error reporting to handle duplicates correctly.

Collectors.toMapJava Stream APIbatch import
0 likes · 18 min read
Stream.toMap() Duplicate Key Crash: Why the Common Fix Silently Loses Data
LuTiao Programming
LuTiao Programming
Nov 8, 2026 · Backend Development

Beyond Chatbots: Building Production-Grade AI Contract Review in Java

This article details a complete Java architecture for AI-powered contract review, covering PDF parsing, text normalization, structured LLM output with enums and records, chunking long documents, async task processing with retries, business rule validation, human-in-the-loop workflows, and feedback capture for continuous improvement.

AI IntegrationJavaPDF parsing
0 likes · 21 min read
Beyond Chatbots: Building Production-Grade AI Contract Review in Java
LuTiao Programming
LuTiao Programming
Nov 7, 2026 · Databases

Logical Delete vs Unique Index: The Duplicate Entry Trap and the Generated Column Fix

The article explains how logical deletion conflicts with unique indexes in MySQL, shows why a composite index on (code, deleted) only supports one delete-create cycle, and presents a robust solution using a generated column that becomes NULL when deleted, leveraging MySQL's allowance of multiple NULLs in unique indexes to enforce uniqueness only on active records.

Database DesignMySQLUnique Index
0 likes · 15 min read
Logical Delete vs Unique Index: The Duplicate Entry Trap and the Generated Column Fix
LuTiao Programming
LuTiao Programming
Nov 6, 2026 · Information Security

Complete Java Account Security Recovery: Reclaiming Accounts After Compromise

This article details a comprehensive Java implementation for secure account recovery, covering threat modeling, recovery challenge design, assurance scoring, leveraging pre-compromise credentials like Passkeys and recovery codes, security versioning to invalidate attacker sessions, post-recovery audits, and rate limiting to prevent abuse.

Java securityOWASP guidelinesPasskey
0 likes · 28 min read
Complete Java Account Security Recovery: Reclaiming Accounts After Compromise
LuTiao Programming
LuTiao Programming
Nov 5, 2026 · Backend Development

Instant Account Freeze in Java: One Version Bump Revokes All Tokens & Sessions

This article details a Java implementation for one-click account freezing that uses a security version counter to instantly invalidate all access tokens, refresh tokens, sessions, and trusted devices across multiple clients without maintaining token blacklists, covering distributed caching, audit logging, and recovery flows.

Account FreezeDistributed CachingJWT
0 likes · 23 min read
Instant Account Freeze in Java: One Version Bump Revokes All Tokens & Sessions