Programmer1970
Author

Programmer1970

Formerly called 'Code to 35'. Add our main WeChat ID to access a wealth of shared resources (algorithms, interview prep, tech stacks: Java, Python, Go, big data). We mainly share serious development techniques, focusing on output-driven input. Occasionally we post life snippets and gossip. Our aim is to attract precise traffic and test advertising opportunities.

128
Articles
0
Likes
606
Views
0
Comments
Recent Articles

Latest from Programmer1970

100 recent articles max
Programmer1970
Programmer1970
Jun 29, 2026 · Backend Development

How We Cut Full GC from 10 seconds to 200 ms: A Complete JVM GC Tuning Guide

A production outage at 3 am revealed a 10‑second Full GC pause on an 8 GB heap; the article walks through evidence collection, heap‑size rebalancing, switching to G1, fine‑tuning G1 parameters, and code changes that together reduced Full GC pauses to 200 ms and improved latency dramatically.

Full GCG1 GCGC tuning
0 likes · 12 min read
How We Cut Full GC from 10 seconds to 200 ms: A Complete JVM GC Tuning Guide
Programmer1970
Programmer1970
Jun 1, 2026 · Fundamentals

Why ZGC Pauses Stay Under 1 ms: Inside Colored Pointers and Load Barriers

The article explains how ZGC achieves sub‑millisecond pause times by embedding GC state in pointer bits (colored pointers) and using JIT‑injected load barriers that fix references on first access, comparing this approach with G1 and Shenandoah and detailing ZGC 2.0 enhancements and known pitfalls.

Colored PointersConcurrent GCGarbage Collection
0 likes · 11 min read
Why ZGC Pauses Stay Under 1 ms: Inside Colored Pointers and Load Barriers
Programmer1970
Programmer1970
May 31, 2026 · Fundamentals

Why synchronized is slower – tracing its roots from MESI cache coherence

The article demystifies why Java's synchronized keyword can be slower by tracing the full path from CPU cache‑coherence (MESI) through bus and cache locks, volatile, biased and lightweight locks, up to the heavyweight monitor implementation, revealing each layer’s impact on visibility, ordering and atomicity.

JVMJavaSynchronized
0 likes · 15 min read
Why synchronized is slower – tracing its roots from MESI cache coherence
Programmer1970
Programmer1970
May 27, 2026 · Backend Development

Ultimate Cache Consistency Solution for Billion‑Scale Traffic: Canal + MQ + Local Cache

At billion‑level request rates, the traditional cache‑aside pattern fails, so the article proposes a three‑layer architecture—Canal captures MySQL binlog, an MQ (RocketMQ/Kafka) buffers changes, and a coordinated local cache service updates L1 caches with short TTL, achieving high performance and eventual consistency.

CanalRocketMQcache-consistency
0 likes · 12 min read
Ultimate Cache Consistency Solution for Billion‑Scale Traffic: Canal + MQ + Local Cache
Programmer1970
Programmer1970
May 26, 2026 · Backend Development

7 Distributed Lock Implementations and Real‑World Pitfalls

The article explains why local locks fail in multi‑machine deployments, defines the three essential properties of a correct distributed lock, walks through seven Redis‑based lock solutions with code samples, highlights common production pitfalls, and provides a decision tree for selecting the right approach.

Java ConcurrencyRedisRedisson
0 likes · 10 min read
7 Distributed Lock Implementations and Real‑World Pitfalls
Programmer1970
Programmer1970
May 25, 2026 · Backend Development

How a Full GC Spike Turned 50 ms P99 Latency into 3 s – Full Investigation

When a monitoring alarm showed the /api/order/create endpoint’s P99 latency jump from under 50 ms to over 3 s, the team traced the root cause to a Full GC storm caused by an unbounded static HashMap cache, using Arthas, heap dumps, MAT analysis, and finally applied both quick‑fix and permanent code changes to restore performance.

ArthasCaffeineEclipse MAT
0 likes · 8 min read
How a Full GC Spike Turned 50 ms P99 Latency into 3 s – Full Investigation
Programmer1970
Programmer1970
May 24, 2026 · Operations

Full-Stack Guide to Tracing RocketMQ Message Loss

This guide walks you through the entire lifecycle of a RocketMQ message, identifies where loss can occur, provides step‑by‑step diagnostics using TrackType and timestamps, and offers concrete configuration, command‑line and recovery strategies for producers, brokers and consumers.

ConfigurationConsumerMessage Loss
0 likes · 11 min read
Full-Stack Guide to Tracing RocketMQ Message Loss
Programmer1970
Programmer1970
May 20, 2026 · Fundamentals

Only 5 of Java 21’s 15 New Features Actually Change Your Code

Java 21, the latest LTS release, adds fifteen JEPs but only five—virtual threads, record patterns, switch pattern matching, string templates, and sequenced collections—significantly alter coding style, offering lightweight concurrency, concise data deconstruction, modern switch syntax, powerful string interpolation, and enhanced collection APIs.

Java 21Record PatternsSequenced Collections
0 likes · 8 min read
Only 5 of Java 21’s 15 New Features Actually Change Your Code
Programmer1970
Programmer1970
May 19, 2026 · Interview Experience

What Do Interviewers Really Test When They Ask About Design Patterns?

The article shows that interviewers don’t just want you to list design patterns; they assess your ability to identify real scenarios, solve concrete problems, justify trade‑offs, and discuss implementation details, illustrated with payment and order‑processing examples in Java and Spring.

Chain of ResponsibilityFactory PatternInterview
0 likes · 11 min read
What Do Interviewers Really Test When They Ask About Design Patterns?
Programmer1970
Programmer1970
May 18, 2026 · Interview Experience

Why Your 10 Years of Experience May Just Be One Year Repeated Ten Times

The article argues that many senior developers only repeat the same one‑year‑old skills, showing that true experience requires deeper problem‑solving, trade‑off thinking, and the ability to eliminate issues rather than merely execute them.

Career DevelopmentInterview PreparationJava
0 likes · 9 min read
Why Your 10 Years of Experience May Just Be One Year Repeated Ten Times